Re: More on strings
| From: | CC Zona | Date: | Tue, 20 Mar 2001 16:07:56 +0000 |
| Subject: | Re: More on strings | ||
| References: | 1 2 3 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-7651@lists.php.net to get a copy of this message | ||
In article <007901c0b153$ae861a80$660083ca@oemcomputer>,
mjl@consultingrooms.com ("Mick Lloyd") wrote:
> Thanks for the reply. I tried the variable route but again failed. I think
> from your suggested line of code you may have misunderstood the problem. The
> LIKE option works fine without having to put it into a variable.
>
> $sql = "select Primaryid from primarycodes where Code =
> '$row[Primaryexpertise]'";
> print $sql."<BR>\n";
>
> \\Prints: select Primaryid from primarycodes where Code = 'Biology' \\which
> seems OK
>
> $resultp = mysql_query($sql) or die ("Failed"); \\This seems to work
> $pcodeid = mysql_fetch_array($resultp) or die("No pcodeid");
>
> \\Prints: No pcodeid \\ie failed
mysql_query() returns true as long as the query syntax appears valid; it
does not indicate whether the query actually found rows or not. So just
because the code didn't die on the mysql_query() line, you cannot assume
the query "works" as intended. The fact that the mysql_fetch_array() line
dies would suggest that the query above likely is failing for some reason.
One thing you can do is check mysql_num_rows() first to determine whether
the query found any records. Another thing you can do is echo $sql, then
copy/paste that query at the command line to determine whether it's the SQL
itself that's the problem or the PHP code. Finally, instead of displaying
your own ambiguous error messages on die(), let MySQL & PHP report to you
what they know about the problem. Example:
$resultp = mysql_query($sql) or die('Query failed. MySQL says: ' .
mysql_error() . '. PHP says: ' . $errormsg . '.');
--
CC