我有一个mysql数据库,其中有一个表" tb"
Column Type --------------------------------- id int(11) chainid int(11) commission decimal(10,2) order_count int(11) total_order_value decimal(10,2) fromdt date todt date
我从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中的打印件是:
1st:DELETE FROM
tb
WHERE chainid = 4 AND fromdt =' 2017年5月1日'和todt =' 2017-05-31';查询结果:
INSERT INTO
tb
VALUES(NULL,4,4755.69,94,6793.84,' 2017年5月1日'' 2017年5月31日&#39);查询结果:
当我使用这两句时:
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 FROMtb
WHERE chainid = 4 AND fromdt =&#39; 2017年5月1日&#39;和todt =&#39; 2017-05-31&#39 ;;
MySQL错误2014:命令不同步;你现在不能运行这个命令
执行时:
插入tb
VALUES(NULL,4,4755.69,94,6793.84,&#39; 2017年5月1日&#39;&#39; 2017年5月31日&#39);
更新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();
答案 0 :(得分:0)
我只需要在 mysql_query 之前使用:
关闭连接mysql_close();
使用我的函数立即再次打开连接:
db_connect();
非常感谢为解决这个问题做出贡献的所有人。