【发布时间】:2017-09-04 03:29:55
【问题描述】:
我有一个带有“tb”表的mysql 数据库
列类型 --------------------------------- id int(11) 链ID int(11) 佣金小数(10,2) order_count int(11) total_order_value 十进制(10,2) fromdt 日期 日期我从我的 php 文件中运行此代码
$query = "DELETE FROM `tb` WHERE chainid=$row[0];";
error_log("1st : ".$query);
$storeit = mysql_query($query);
error_log("result of query : ".$storeit);
$query = "INSERT INTO `tb` VALUES(null,$row[0],$com,$oc,$ov,'$startdate','$enddate');";
error_log("2nd : ".$query);
$storeit = mysql_query($query);
error_log("result of query : ".$storeit);
但在 DB 中没有发生任何事情,并且 error_log 中的打印结果是:
第一个:从
tb删除其中chainid = 4和 fromdt='2017-05-01' AND todt='2017-05-31';查询结果:
插入
tbVALUES(null,4,4755.69,94,6793.84,'2017-05-01','2017-05-31');查询结果:
当我使用这两个句子时:
DELETE FROM `tb` WHERE chainid=4 AND fromdt='2017-05-01' AND todt='2017-05-31';
INSERT INTO `tb` VALUES(null,4,4755.69,94,6793.84,'2017-05-01','2017-05-31');
在phpmyadmin 的 SQL 选项卡中,它们运行良好!!
- 那么,我不知道我的代码有什么问题?有什么我可以做的吗?
更新 使用http://php.net/manual/en/function.mysql-error.php中的[tag:mysql_error()]后
function q($query){
$result = mysql_query($query);
if (mysql_errno()) {
$error = "MySQL error ".mysql_errno().": ".mysql_error()."\n<br>When executing:<br>\n$query\n<br>";
error_log($error);
}
}
并改为调用此函数,使用:
$query = "DELETE FROM `tb` WHERE chainid=$row[0] AND fromdt='$startdate' AND todt='$enddate';";
$result = q($query);
$query = "INSERT INTO `tb` VALUES(null,$row[0],$com,$oc,$ov,'$startdate','$enddate');";
$result = q($query);
我得到了这些:
MySQL 错误 2014:命令不同步;你现在不能运行这个命令
执行时:
DELETE FROMtbWHERE chainid=4 AND fromdt='2017-05-01' AND todt='2017-05-31';MySQL 错误 2014:命令不同步;你现在不能运行这个命令
执行时:
INSERT INTOtbVALUES(null,4,4755.69,94,6793.84,'2017-05-01','2017-05-31');
更新 2
经过一番搜索:
命令不同步;你现在不能运行这个命令 在Commands out of sync; you can't run this command now SQL
我发现我必须关闭连接并重新启动它。但问题是我在 function.php 的开头使用了一个函数来连接数据库,该函数包含在我的 header.php 文件中:
function db_connect()
{
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "dbname";
@mysql_connect($servername,$username,$password) or die ("error in host connection");
header('Content-Type: text/html; charset=utf-8');
mysql_set_charset('utf8_unicode_ci');
@mysql_select_db($dbname) or die("error in db connection");
mysql_query("SET NAMES 'utf8'");
}
db_connect();
- 那么,如何使用 mysql_close(); 关闭连接?
【问题讨论】:
-
Delete和insert不返回任何内容。行消失/插入了吗?您也不应该再使用mysql_函数,使用mysqli或pdo进行未来开发。 -
什么也没删除,什么也没插入
-
是的,不要使用 mysql * 函数
-
请将其添加到问题中,stackoverflow.com/posts/46029913/edit。
标签: mysql php phpmyadmin php mysql