SQL语法错误。更新表问题

时间:2015-01-14 09:36:51

标签: php sql

我真的很讨厌这个错误信息,因为它是人类历史上最无用的错误信息。

无论如何,我认为我已经盯着这个非常简单的sql一个小时,但仍然认为问题出在哪里。希望有人可以帮助我,或者也许一些橡皮鸭会做的伎俩。

php代码:

$sql    =   "UPDATE events SET titel = '$this->estart',
                                        endTime = '$this->eend',
                                        desc = '$this->desc',
                                        dd = '$this->dDmed',
                                        dato = '$this->dato',
                                        ticketId = '$this->ticket' WHERE id = $this->id";

抛出SQL错误:

right syntax to use near 'desc = '2222222222222222',
                                    dd = 'shop',
                                    dato = '2015-01-14' at line 3[ UPDATE events SET    titel = '08:30:00',
                                    endTime = '09:00:00',
                                    desc = '2222222222222222',
                                    dd = 'shop',
                                    dato = '2015-01-14',
                                    ticketId = '2222222222222' WHERE id = 4]' in  ....

表格布局:

 id         int(11)
 titel      varchar(200)
 navn       varchar(200)
 email      varchar(255)
 tlf        varchar(20) 
 domæne     varchar(150)
 kundNumb   int(14)
 abnId      varchar(15)
 startTime  time
 endTime    time
 desc       text 
 ticketId   varchar(20)
 dd         varchar(5)
 dato       date

希望有人可以提供帮助,我对sql陈述感到厌倦。

5 个答案:

答案 0 :(得分:5)

问题在于desc字段。 DESC是SQL语法中的关键字。因此,您必须使用像`desc`这样的反向标记来引用desc。

UPDATE events SET 
    `titel` = '$this->estart',
    `endTime` = '$this->eend',
    `desc` = '$this->desc',
    `dd` = '$this->dDmed',
    `dato` = '$this->dato',
    `ticketId` = '$this->ticket'
WHERE id = $this->id

答案 1 :(得分:1)

你错过了一个逗号:

$sql    =   "UPDATE events SET titel = '$this->estart',
                                        endTime = '$this->eend',
                                        desc = '$this->desc',
                                        dd = '$this->dDmed',
                                        dato = '$this->dato',
                                        ticketId = '$this->ticket' WHERE id = $this->id";

答案 2 :(得分:0)

似乎错误在ticket_ID中我认为您使用ticket_id作为数字类型或整数类型并将其作为字符串'$this->ticket'删除''并将其保留为$this->ticket

答案 3 :(得分:0)

我相信改变

ticketId = '$this->ticket'

ticketId = $this->ticket

应该有效..

答案 4 :(得分:-1)

你错过了一个逗号,还有一些“和'。:

"UPDATE events SET titel = '".$this->estart."',
   endTime = '".$this->eend."',
   desc = '".$this->desc."',
   dd = '".$this->dDmed."',
   dato = '".$this->dato."',
   ticketId = '".$this->ticket."' WHERE id = ".$this->id.";