SQL 语法错误.更新表问题


Error in your SQL syntax. Update table issue

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

无论如何,我认为我已经盯着这个非常简单的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的说法感到厌倦。

问题出在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

您错过了一个逗号:

$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";

我相信改变

ticketId = '$this->ticket'

ticketId = $this->ticket

应该工作..

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

你错过了一个逗号,还有一些"和":

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