Re: cause of error is what? [message #181578 is a reply to message #181576] |
Wed, 22 May 2013 12:48 |
Scott Johnson
Messages: 196 Registered: January 2012
Karma:
|
Senior Member |
|
|
On 5/22/2013 5:34 AM, Scott Johnson wrote:
> 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
Edit: 'sending a NULL value' (man I gotta have my coffee before posting)
> 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
|
|
|