【问题标题】:query result is null from phpphp的查询结果为空
【发布时间】:2017-09-04 03:29:55
【问题描述】:

我有一个带有“tb”表的 数据库

列类型 --------------------------------- id int(11) 链ID int(11) 佣金小数(10,2) order_count int(11) total_order_value 十进制(10,2) fromdt 日期 日期

我从我的 文件中运行此代码

$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';

查询结果:

插入tb VALUES(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');

的 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='2017-05-01' AND todt='2017-05-31';

MySQL 错误 2014:命令不同步;你现在不能运行这个命令
执行时:
INSERT INTO tb VALUES(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(); 关闭连接?

【问题讨论】:

标签: mysql php phpmyadmin php mysql


【解决方案1】:

我只需要在 mysql_query 使用之前关闭连接:

mysql_close();

并立即使用我的功能再次打开连接:

db_connect();

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

【讨论】:

    猜你喜欢
    • 2011-08-21
    • 2023-04-09
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    相关资源
    最近更新 更多