查询结果为空{php}

时间:2017-09-04 03:29:55

标签: php 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

我从文件

运行此代码
$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');

的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 FROM tb 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();
  • 那么,如何使用 mysql_close(); 关闭连接?

1 个答案:

答案 0 :(得分:0)

我只需要在 mysql_query 之前使用:

关闭连接
mysql_close();

使用我的函数立即再次打开连接:

db_connect();

非常感谢为解决这个问题做出贡献的所有人。