PHP的mysql插入请求返回无报错,但数据库未更新
程序员文章站
2022-05-08 20:51:19
...
有下面这段PHP代码
根据echo和die返回的值来看,请求 $query = "insert into index_b2a (bid, aid, `limit`, now) values ($bid, $aid, '$time', 1)";应该是完全没错,$result为1,且affected rows也是1。
但是在数据库里,怎么也找不到插入的这一条在哪里。
我加了一个echo($query),打印出来的请求为insert into index_b2a (bid, aid, `limit`, now) values (102631, '89', '2014-06-13:1', 1),直接输入mysql,当然也是执行正确的,并且刷新数据库后,立刻能看到插入的条目。
因为limit是关键字,我已经加了``作为引号。
为了确保不会造成错误,89外面的引号也去掉,2014-06-13:1这个值也改了,把后面冒号和数字1去掉。
然后执行:
仍然是mysql里面能生效,php里面不生效,但返回值都说是执行成功。
不知道问题出在哪里?
查了查去也没发现什么,最后弄了一个MySql API文档,找了段代码,更改相应字段就好了。应该是语句字符的问题吧(我也不知道。。。)。
附上我的能insert的代码,你修改内容了试试,希望能解决你的问题:
$query = "insert into index_base (cardid, name, sex, nationality, birth, address, issued, expiration) values ($cardid, $name, $gender, $folk, $birthday, $addr, $agency, $expire)";mysql_query($query);if($buy=="1"){ $bid = mysql_insert_id();echo($bid); $time=date("Y-m-d",time()); $time.=":1"; $query = "insert into index_b2a (bid, aid, `limit`, now) values ($bid, $aid, '$time', 1)";echo($query); $result = mysql($query); echo("result 为".$result); if(mysql_affected_rows()==1)die("1"); else die("0");}
根据echo和die返回的值来看,请求 $query = "insert into index_b2a (bid, aid, `limit`, now) values ($bid, $aid, '$time', 1)";应该是完全没错,$result为1,且affected rows也是1。
但是在数据库里,怎么也找不到插入的这一条在哪里。
我加了一个echo($query),打印出来的请求为insert into index_b2a (bid, aid, `limit`, now) values (102631, '89', '2014-06-13:1', 1),直接输入mysql,当然也是执行正确的,并且刷新数据库后,立刻能看到插入的条目。
因为limit是关键字,我已经加了``作为引号。
为了确保不会造成错误,89外面的引号也去掉,2014-06-13:1这个值也改了,把后面冒号和数字1去掉。
然后执行:
仍然是mysql里面能生效,php里面不生效,但返回值都说是执行成功。
不知道问题出在哪里?
回复讨论(解决方案)
$result = mysql($query); 中的mysql() 是你自定义的函数么?还是手误?
echo mysql_error(); 看看有没有错误。
是不是入错库了?
$result = mysql($query); 这个是什么?
我也遇到同样的问题,insert 、 update都无法完成。
我也遇到同样的问题,insert 、 update都无法完成。
查了查去也没发现什么,最后弄了一个MySql API文档,找了段代码,更改相应字段就好了。应该是语句字符的问题吧(我也不知道。。。)。
附上我的能insert的代码,你修改内容了试试,希望能解决你的问题:
$sql="insert into resell_info (id, user, datetime, content) values (null,'12345',null,'12345')"; mysql_query($sql);
mysql_query()函数的第二个参数最好也加上
贴出程序的运行结果
学习,学习,学习
mysql_query(query,connection);
肯定是你没有连接上数据库了。
在mysql里面测,能成功,那说明语句没有问题。但是mysql里面测,其实是在已经链接数据库的状态下进行。
但在php页面,首先你要做的就是先连接数据库,补充connection参数。