Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL语法错误。更新表问题_Php_Sql - Fatal编程技术网

Php SQL语法错误。更新表问题

Php SQL语法错误。更新表问题,php,sql,Php,Sql,我真的很讨厌那个错误信息,因为它是人类历史上最无用的错误信息 不管怎样,我想我已经盯着这个非常简单的sql看了一个小时,但对于它认为问题出在哪里,我还是一片空白。希望有人能帮我,或者是一些橡皮鸭能帮上忙 php代码: $sql = "UPDATE events SET titel = '$this->estart', endTime = '$this->eend',

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

不管怎样,我想我已经盯着这个非常简单的
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
语句感到厌烦。

你漏掉了一个逗号:

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

你漏掉了一个逗号和一些“and”:

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

你漏掉了一个逗号和一些“and”:

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

票证ID中似乎存在错误我认为您正在使用票证ID作为数字类型或整数类型,并将其作为字符串传递
'$this->ticket'
删除“”,并将其保留为
$this->ticket

票证ID中似乎存在错误我认为您正在使用票证ID作为数字类型或整数类型,并将其作为字符串传递
'$this->ticket'
删除“”,并将其保留为
$this->ticket
我相信会更改

ticketId = '$this->ticket'

应该行的。

我相信改变

ticketId = '$this->ticket'


应该可以工作。

问题在于
desc
字段
DESC
是SQL语法中的一个关键字。因此,您将不得不引用带有背面记号的desc,如
`desc`

更新事件集
`titel`='$this->estart',
`endTime`='$this->eend',
`desc`='$this->desc',
`dd`='$this->dDmed',
`dato`='$this->dato',
`ticketId`='$this->ticket'
其中id=$this->id

问题在于
desc
字段
DESC
是SQL语法中的一个关键字。因此,您将不得不引用带有背面记号的desc,如
`desc`

更新事件集
`titel`='$this->estart',
`endTime`='$this->eend',
`desc`='$this->desc',
`dd`='$this->dDmed',
`dato`='$this->dato',
`ticketId`='$this->ticket'
其中id=$this->id


不是问题,只是我这边的一个类型错误。。thx tho:)问题仍然存在。逗号不是唯一的问题-仍然缺少一些语法,因此查询可以工作。是的,将新错误粘贴到我的原始帖子中并更正了我的类型错误:)问题是sameI认为Kiyan的答案是正确的。Desc是一个保留字,因此如果将其用作字段之一,则必须使用“或”“在您的查询或写入events.desc中,这不是问题,只是我这边的一个类型错误。”。。thx tho:)问题仍然存在。逗号不是唯一的问题-仍然缺少一些语法,因此查询可以工作。是的,将新错误粘贴到我的原始帖子中并更正了我的类型错误:)问题是sameI认为Kiyan的答案是正确的。Desc是一个保留字,因此如果将其用作字段之一,则必须使用“或”“在您的查询或write events.desc中,表结构是什么?ticketId是什么类型?”?在这里,您将它作为字符串传入,但它可能是int?此外,请检查日期是否为服务器的正确格式。票证id为xx-111-4444 3,因此是字符串而不是int:)表结构是什么?票证id是什么类型?在这里,您将它作为字符串传入,但它可能是int?另外,检查日期是否为服务器的正确格式。票证id为xx-111-4444 3,因此字符串不是int:)您注意到他的查询值打印正确了吗?在PHP中使用
时,您可以调用字符串中的变量。在使用
时,您不能。您是否注意到他的查询值打印正确?在PHP中使用
时,您可以调用字符串中的变量。当使用
时,您不能将.id作为intiger传递,我相信:$obj->id=intval(mysql\u real\u escape\u string($\u POST['id'));票证id是一个varchar,因为它是一个字符串:)id作为intiger传递:$obj->id=intval(mysql\u real\u escape\u string($\u POST['id']);票证id是一个varchar,因为它是一个字符串:)你在哪里对。。desc也是降序的,所以是一个保留字,所以它应该在
desc
中,一旦我这样做了。。它起作用了。。对于任何可能遇到类似问题的人。在MySQL中,单引号不起作用,我不得不使用“最好避免它,因为它很容易混淆;)你说的对。。desc也是降序的,所以是一个保留字,所以它应该在
desc
中,一旦我这样做了。。它起作用了。。对于任何可能遇到类似问题的人。在MySQL中,单引号不起作用,我不得不使用“最好避免它,因为它很容易混淆;)