Errata


Print Print Icon

Submit your own errata for this product.


The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.


Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question



Version Location Description Submitted By
Printed Page 16
5th command line entry

$ chmod 644 myfile.txt
should read
$ chmod 600 myfile.txt

since it corresponds to previous example
$ chmod u=rw,g=,o= myfile.txt where
"Here, the group and other users have been assigned no permissions."

Anonymous 
Printed Page 16
3rd paragraph

"Only the superuser is allowed to change the owner of a file or directory" is wrong and should be deleted.

Peter Pan 
PDF Page 53
Code Example

The code examples on Page 53 and 54 are incorrect.

The code examples are:

mysql> SELECT emp_id, fname, lname, start_date, title
-> FROM employee
-> WHERE title = 'Head Teller'
-> AND start_date > '2006-01-01';

mysql> SELECT emp_id, fname, lname, start_date, title
-> FROM employee
-> WHERE title = 'Head Teller'
-> OR start_date > '2006-01-01';

mysql> SELECT emp_id, fname, lname, start_date, title
-> FROM employee
-> WHERE (title = 'Head Teller' AND start_date > '2006-01-01')
-> OR (title = 'Teller' AND start_date > '2007-01-01);


Do not work as the start_date column in the employee table as created by following the directions in Chapter 2 pages 16-17, has the following entries.


mysql> select emp_id, fname, lname, start_date, title From employee ;
+--------+----------+-----------+------------+--------------------+
| emp_id | fname | lname | start_date | title |
+--------+----------+-----------+------------+--------------------+
| 1 | Michael | Smith | 2001-06-22 | President |
| 2 | Susan | Barker | 2002-09-12 | Vice President |
| 3 | Robert | Tyler | 2000-02-09 | Treasurer |
| 4 | Susan | Hawthorne | 2002-04-24 | Operations Manager |
| 5 | John | Gooding | 2003-11-14 | Loan Manager |
| 6 | Helen | Fleming | 2004-03-17 | Head Teller |
| 7 | Chris | Tucker | 2004-09-15 | Teller |
| 8 | Sarah | Parker | 2002-12-02 | Teller |
| 9 | Jane | Grossman | 2002-05-03 | Teller |
| 10 | Paula | Roberts | 2002-07-27 | Head Teller |
| 11 | Thomas | Ziegler | 2000-10-23 | Teller |
| 12 | Samantha | Jameson | 2003-01-08 | Teller |
| 13 | John | Blake | 2000-05-11 | Head Teller |
| 14 | Cindy | Mason | 2002-08-09 | Teller |
| 15 | Frank | Portman | 2003-04-01 | Teller |
| 16 | Theresa | Markham | 2001-03-15 | Head Teller |
| 17 | Beth | Fowler | 2002-06-29 | Teller |
| 18 | Rick | Tulman | 2002-12-12 | Teller |
+--------+----------+-----------+------------+--------------------+
18 rows in set (0.00 sec)

Thus all queries will return: empty set (0.00 sec).

Iam Pseudonym 
Printed Page 85
under "Starting and Stopping Apache"

I am using version 10.2 of the openSUSE distribution of Linux.

Under this OS, it seems that the proper command for starting and stopping Apache is rcapache2 instead of apachectl. Using the later does not update the files under /etc/apache2/sysconfig.d/ from the /etc/sysconfig/apache2 configuration file. This results in two errors.

First, Apache won't start because it is missing the /etc/apache2/sysconfig.d/include.conf file. You'll see the error message "httpd2: Syntax error on line 188 of /etc/apache2/httpd.conf: Could not open configuration file /etc/apache2/sysconfig.d/include.conf: No such file or directory"

Second, the /etc/apache2/sysconfig.d/loadmodule.conf is not updated; so, it won't load the PHP module.

Anonymous 
Printed Page 96
line -7

"| 5.0.22 |" -> "| 5.0.22 |"

Anonymous 
Printed Page 97
last line

Move the last line to the next page so the ASCII art box is not split across a page boundary.

Anonymous 
Printed Page 99
2nd paragraph

"by typing rebuild (or using the shortcut characters #)"

should probably be

"by typing rehash (or using the shortcut characters #)"

Anonymous 
Printed Page 145
second query example

The query is:

mysql> SELECT * FROM track WHERE -> track_name LIKE "R__ %";

The problem is the '->'. It shouldn't be there because there is no line break.

It should read:
"mysql> SELECT * FROM track WHERE track_name LIKE "R__ %";

Anonymous 
Printed Page 170
4th paragraph

Reference to "Keys and Indexes" in Chapter 4. "Keys and Indexes" is in Chapter 6.

Anonymous 
Printed Page 183
1st paragraph, 3rd sentence

"The <i>name</i> field is the table name, ..." should be "The <i>name</i> field is
the column name, ..."

Anonymous 
Printed Page 225
First SQL statement at end of first paragraph

The text discussion refers to the use of an unaliased alternative which would require repeating the concatenated columns but the SQL statement defines the 'recording' alias but does not use the alias.

Current:

SELECT CONCAT(artist_name, " recorded ", album_name) AS recording
FROM artist INNER JOIN album USING (artist_id)
ORDER BY CONCAT(artist_name, " recorded ", album_name);

Should be:

SELECT CONCAT(artist_name, " recorded ", album_name)
FROM artist INNER JOIN album USING (artist_id)
ORDER BY CONCAT(artist_name, " recorded ", album_name);

Anonymous 
Printed Page 254
4th paragraph

"<> ANY" and "!= ANY" do not have the alias "NOT IN".
"NOT IN" is actually an alias for "<> ALL".

Anonymous 
Printed Page 255
Using ALL: 2nd paragraph

While the ANY keyword returns values that satisfy at least one condition (Boolean OR), the ANY keyword returns values when all the conditions are satisfied (Boolean AND).

I think this should be changed to say:

While the ANY keyword returns values that satisfy at least one condition (Boolean OR), the ALL keyword returns values when all the conditions are satisfied (Boolean AND).

Anonymous 
Printed Page 483
Bottom of page

if (crypt($password, substr($username, 0, 2)) != $row["password"])
{
// No, so redirect the browser to the login page with a
// message
$message = "This user exists, but the password submitted is incorrect. ".
"Choose another username, or fix the password.";

Always returns: "Choose another username, or fix the password if previously logged in. Have not figured out what the problem is here because it makes logical sense, but there is something about it not recognizing that there is a value there or that it can not recognized the encrypted value--I'm running this on a Mac, with PHP 5.2 but I don't think that is the prolem. Would appreciate the solution!

Again, need to have your downloads and the files in the book tested by someone not familiar with the process.

Anonymous 
Printed Page 506
bottom of page

Should be:
// Try to unreserve the gift with the matching username and gift ID
$query = "UPDATE gifts SET username = NULL WHERE gift_id = {$gift_id}".
" AND username='{$_SESSION['username']}'";

Notice the ' after username= and after }, other wise returns no value and you get an error statement from mySQL telling you there is an error in the where statement.

Makes me think no one tested or has downloaded the sample...

Anonymous 
Printed Page 542
2nd example on page

The line:
while(my $val=$sth->fetchrow_hashref())

Should read:
while(my $val=$ref->fetchrow_hashref())
^^^^

Chuck Howell 
Printed Page 583
Symbols section of index

All the symbols seem to be Perl and PHP operators. Why aren't SQL operators listed? Or maybe there is a worse problem: I can't find a list of SQL operators in the book.

Anonymous 


"If you only get one book on mySQL then get this one because it has everything you need."
--Stephen Chapman, Felgall.com