Reply to Re: mySQL Problem

Your name:

Reply:


Posted by Steve on 11/09/07 10:05

"AnrDaemon" <anrdaemon@freemail.ru> wrote in message
news:247167785.20071109125445@freemail.ru...
> 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?

ask a dba in a db usenet group...or one at your company. :)

> 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.

no, it's an alias for an object really. but, yes, you can name it whatever
you wish. there is plenty of documentation in *every* db about avoiding such
conventions, esp. reserved words as dbo names, like the plague.

>> 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.

so, you admit that mssql uses something DIFFERENT and PARTICULAR to alias?
you realize that your code becomes TIED to that db until you rewrite every
query to fit the NEXT db you want to use, don't you?

> And I have no doubt that other server have identical solution for field
> names.

no, only a reliable few share the same notation...and even fewer of those
are among the most commonly used dbs. next!

> I think You are wrong and lack of proper quotation in field names isan
> extension, not the quotation.

no, jerry is right. what you think is unimportant in light of what can be
cited and proven as correct...which we certainly can here in this case.

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

cheers

[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

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