Learning MySQL by Seyed M.M. "Saied" Tahaghoghi, Hugh E. Williams The unconfirmed error reports are from readers. They have not yet been approved or disproved by the author or editor and represent solely the opinion of the reader. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification This page was updated April 17, 2008. UNCONFIRMED errors and comments from readers: [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." [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. (96) line -7; "| 5.0.22 |" -> "| 5.0.22 |" (97) last line; Move the last line to the next page so the ASCII art box is not split across a page boundary. {99} 2nd paragraph; "by typing rebuild (or using the shortcut characters \#)" should probably be "by typing rehash (or using the shortcut characters \#)" {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__ %"; (170) 4th paragraph; Reference to "Keys and Indexes" in Chapter 4. "Keys and Indexes" is in Chapter 6. (183) 1st paragraph, 3rd sentence; "The name field is the table name, ..." should be "The name field is the column name, ..." {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); [254] 4th paragraph; "<> ANY" and "!= ANY" do not have the alias "NOT IN". "NOT IN" is actually an alias for "<> ALL". (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). [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. [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... [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.