Heim >Backend-Entwicklung >PHP-Tutorial >这条插入记录的语句有什么错?该怎么处理

这条插入记录的语句有什么错?该怎么处理

WBOY
WBOYOriginal
2016-06-13 10:16:12775Durchsuche

这条插入记录的语句有什么错?
我有一个地方插入一条数据库记录,报错:
insert into receipt(rent,deposit,paidup,createdtime,depositback,coperator) values(50,1,51,'2012-04-10 17:44:47','0','zxy')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 '17:44:47' at line 1

时间是从$dt=date("Y-m-d H:i:s");得到的。
我去查这条记录实际上已经被插入表receipt了.

下面是从phpmyadmin拷贝出来的有用的表结构:
字段 类型 空 默认 额外
id int(11) 否 无 AUTO_INCREMENT
rent float 否 无
deposit float 否 无
paidup float 否 无  
depositback varchar(1) 否 无
createdtime datetime 否 无
coperator varchar(30) 否 无  
dbtime datetime 是 NULL
dboperator varchar(30) 是 NULL

为什么出错了还能插入成功呀?
这个错什么意思呀?

------解决方案--------------------
看着不应该出错,很蹊跷。
我怀疑createdtime是date类型,而不是datetime. 因为date类型正好只接受2012-04-10 17:44:47 前面的2012-04-10。而datetime类型接受 2012-04-10 17:44:47

尽管是phpmyadmin的查询结果,但仍然有必要建议你运行以下SQL语句
SHOW CREATE TABLE `receipt`;
看看结果
------解决方案--------------------



你可以贴出$database类里面,拼装出来的SQL语句
------解决方案--------------------
没遇到这样的怪事。
我做了个测试,同样的表结构,同样的SQL语句,没有遇到任何问题
------解决方案--------------------
测试过是正常的。要注意的是
$rent,$deposit,$total,'$dt'的值要存在,不存在的话组成的sql就有问题。导致错误。
------解决方案--------------------
Column count doesn't match value count 那是你书写错误,比如 insert into tablename(a, b, c) VALUES ('avalue', 'bvalue') 少了个列的值。仔细检查语法

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn