[英]PHP, mysql_query just NOT working
我准备拉头发...
这完美地工作:
$link = mysql_connect('localhost', 'prototype_wp_usr', 'password') or die("Error: " . mysql_error());
mysql_select_db('prototype_wp');
$query = "INSERT INTO wp_zsession_capture
(id, session_id, user_login, first_name, last_name, user_email, phone_number, last_conviction)
VALUES (
'NULL',
'". session_id() ."',
'". $_POST['user_login'] ."',
'". $_POST['first_name'] ."',
'". $_POST['last_name'] ."',
'". $_POST['user_email'] ."',
'". $_POST['phone_number'] ."',
'". $_POST['last_conviction'] ."'
)";
mysql_query($query) or die ('Error updating database: ' . mysql_error());
mysql_close($link);
这并不工作:
$link = mysql_connect('localhost', 'prototype_wp_usr', 'password') or die("Error: " . mysql_error());
mysql_select_db('prototype_wp');
$query = "UPDATE wp_zsession_capture SET removed = 1 WHERE session_id = '$sessionid'";
mysql_query($query) or die ('Error updating database: ' . mysql_error());
mysql_close($link);
这两段代码在一个表单中...如果表单中有错误,则运行FIRST sql查询以保存该时刻会话中的所有内容。 如果没有错误,并且在进行其他操作后,将运行SECOND sql查询以更新那些先前保存的条目中的“已删除”状态。
我一直在修补一百万种替代语法,但无法将这些行更新。 当我在phpMyAdmin中执行原始SQL时,它工作正常。 对此没有任何逻辑……或者我是如此的疲倦。
仅供参考:$ sessionid = session_id();
- 更新 -
我真的很感谢大家的关注,但是让我解决一些问题:
die
语句内。 mysql_error()
不会产生任何结果……根本没有错误。 再次感谢您的关注,但到目前为止,所有建议均已尝试并再次尝试。
使用mysql_error()
从数据库中获取错误消息,如下所示:
mysql_query($query) or die ('Error updating database: '.mysql_error());
该错误可能是许多事情之一,例如,例如,该用户可能没有DELETE权限。 如果不使用mysql_error()
则无法知道发生了什么。
编辑 session_id列中的数据看起来很短。 检查session_id
返回的字符串有多长时间,并检查数据库中的列长。 插入对于列而言太长的数据不是错误,但是确实会裁剪数据。
您是否尝试过检查...
$sessionid
的值是什么 您可以通过将die()
更改为...来完成后者。
mysql_query($query) or die (mysql_error());
mysql_error()返回空白的一个可能原因是同时打开了多个连接。 最近在将脚本传输到更新的服务器/ PHP版本时遇到了这个问题。 尝试在呼叫中提供连接句柄,如下所示:mysql_error($ link)
那应该可以帮助您找到错误所在,并且知道这将有助于我们回答您的问题。
而且,尽管您说过您并不担心注入攻击-您应该始终逃避来自用户/可疑来源的所有数据。 至少要对放入数据库的$ _GET,$ _ POST,$ _ COOKIE,$ _ REQUEST和$ _SERVER变量使用mysql_real_escape_string()。 我向您介绍小鲍比桌子的故事...
不知道为什么第二个查询不执行。 如果没有看到数据库表的架构,也没有发布服务器生成的错误消息的内容,那么将很难为您提供帮助。 同时,我强烈建议您花一点时间对SQL注入的危险进行一些研究。
可能还需要确保你调用session_start()
搞乱之前session_id();
取消选中“自动删除”框进入数据库结构,然后再次检查以保存自动删除结构,您的问题将得到解决。 我在执行时遇到这种错误
mysql_query($ query)或死掉(mysql_error());
错误是
数据库更新失败:自动创建无法由Engine更新。
好像发生了此错误,我省略了复制
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.