Re: cause of error is what? [message #181576 is a reply to message #181574] |
Wed, 22 May 2013 12:34 |
Scott Johnson
Messages: 196 Registered: January 2012
Karma:
|
Senior Member |
|
|
On 5/22/2013 3:25 AM, Thomas 'PointedEars' Lahn wrote:
> Scott Johnson wrote:
>
>> On 5/21/2013 6:44 PM, richard wrote:
>>> $result = mysql_query("SELECT atitle,artist,avid FROM A$year WHERE id =
>>> $number");
>>> if (!$result) { echo 'Could not run query: ' . mysql_error(); exit; }
>>> $vid = mysql_fetch_row($result);
>>>
>>> echo $vid[0];
>>>
>>> }
>>>
>>> echo "</div>";
>>>
>>> ?>
>>>
>>
>> *JTOL*
>
> -v
>
>> I could be wrong but..
>
> You are. RTFMs.
>
>> Even if you left $number unset, that query should not of returned false
>> unless 'id' is not an (int) in your table definition.
>
> $ php -r 'echo "foo" . @$number . "bar\n";'
> foobar
>
> If they left $number unset, it would be evaluated to NULL, expanded to the
> zero-length string, and the query would be syntactical in error starting
> from the last “=”.
>
> mysql_query(), which is *deprecated*, returns FALSE if that happens or the
> query cannot be executed for some other reason (which can be found out with
> mysql_errorno() and mysql_error()). It *never* returns the result set such
> as a field value; that has to be obtained by passing the “resource” value
> returned by it as parameter to mysql_fetch_row() etc.
>
> <http://php.net/mysql_query>
>
> Also, MySQL implicitly converts numeric values to string values and vice-
> versa. Suppose the `id` column of a table `foo` would be of the common type
> “UNSIGNED INT(10, 0)”, both
>
> SELECT * FROM `foo` WHERE `id` = 42
>
> and
>
> SELECT * FROM `foo` WHERE `id` = '42'
>
> would *always* yield the same result set.
>
> <http://dev.mysql.com/doc/refman/5.6/en/type-conversion.html> p.
>
>
> PointedEars
>
First off I have never been rude to you or anyone in this group so no
idea why you feel you need to 'RTFM' to me, but if you have to then you
have to.
My original thought/idea was that if 'id' was an (int) in the Db then
sending an empty value should not of caused a query error. But on
elaborating on the thought, there is much more to it when not having
$number set aside from the basic query. Stuff as simple as column set
to not accept NULL values, etc..
It was just a quick un-thought out thought (yes the existence of
un-thought can be argued), nothing more, nothing less.
Thanks however for expanding on the thought so as not to confuse anyone
reading it.
Scotty
|
|
|