Reply to Re: mySQL Problem

Your name:

Reply:


Posted by Jerry Stuckle on 11/09/07 12:04

AnrDaemon wrote:
> Greetings, Jerry Stuckle.
> In reply to Your message dated Thursday, November 8, 2007, 16:31:15,
>
>> AnrDaemon wrote:
>>> Greetings, Steve.
>>> In reply to Your message dated Wednesday, November 7, 2007, 20:19:23,
>>>
>>>
>>>> "Einstein30000" <dominic_ernst@web.de> wrote in message
>>>> news:1194453026.587359.180320@19g2000hsx.googlegroups.com...
>>>>> Hi,
>>>>>
>>>>> in one of my php-scripts is the following query (with an already open
>>>>> db-connection):
>>>>>
>>>>> $q = "INSERT INTO main (name, img, descr, from, size, format, cat,
>>>>> host, link, date) VALUES ('$name', '$img', '$descr', '$user', '$size',
>>>>> '$format', '$cat', '$host', '$link', '$date')" or die(mysql_error());
>>>>>
>>>>> And when the query gets executed i get back the following error:
>>>>>
>>>>> You have an error in your SQL syntax; check the manual that
>>>>> corresponds to your MySQL server version for the right syntax to use
>>>>> near 'from, size, format, cat, host, link, date) VALUES ('bla', '-',
>>>>> 'keine', 'Holgi',' at line 1
>>>>>
>>>>> Whats wrong here?!
>>>> your sql statement is F.U.C.K.E.D !!!
>>> Agree but not in the way You think about.
>>>
>>>> hmmmm...perhaps you'll now see the
>>>> value in FORMATTING your queries where a HUMAN BEING can read it. makes it
>>>> easier to debug. :)
>>> Actually, problem is proper quoting, not the format or anything else.
>>>
>>>> $sql = "
>>>> INSERT INTO main
>>>> (
>>>> `name` ,
>>>> `img` ,
>>>> `descr` ,
>>>> `from` ,
>>>> `size` ,
>>>> `format` ,
>>>> `cat` ,
>>>> `host` ,
>>>> `link` ,
>>>> `date`
>>>> )
>>> That way. All should work now.
>>>
>>>
>
>> No, the REAL solution is to not use reserved words as column names.
>
> Why if it's expected name for a column?
> As far as field names is a strings, You can use any given name, even in Your
> local encoding, and You can use spaces too.
>

Because FROM is a reserved word. Additionally, spaces are not
legitimate in column names (SQL databases do not have fields).

Learn the SQL specs. Then start MySQL in STRICT mode and watch it fail.

>> Then you don't need the quotes - which, BTW, are a MySQL extension to
>> the SQL standard and won't work on any other RDBMS I'm familiar with.
>
> MS SQL Server use square brackets in the same way.
> And I have no doubt that other server have identical solution for field
> names.
> I think You are wrong and lack of proper quotation in field names isan
> extension, not the quotation.
>

There is NOTHING in the SQL specs which allows for such quoting. You
really need to get a copy and read it before making such statements. I
have.

And it's why SQL Server uses square brackets and MySQL uses back
tickies. There is no standard.

>> And it's better to ask SQL questions in a SQL newsgroup.
>
> /agree
>
>

And they will tell you exactly the same thing.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация