2017-09-04 92 views
0

空我有一個數據庫表「TB」查詢結果是從PHP

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

結果:

INSERT INTO tb VALUES(NULL,4,4755.69,94,6793.84, '2017年5月1日', '2017年5月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標籤,他們的工作完美!

  • 所以,我不知道我的代碼有什麼問題?有什麼我可以做的嗎?使用後

UPDATE [標籤:mysql_error()]從http://php.net/manual/en/function.mysql-error.php

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); 

我這些:

2014年MySQL錯誤:命令不同步;
執行時:
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年5月1日', '2017年5月31日');

UPDATE 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();
+0

'Delete'和'insert'不會返回任何東西。行是否已被刪除/插入?你也不應該再使用'mysql_'函數,使用'mysqli'或'pdo'來進行未來的開發。 – chris85

+0

沒有東西被刪除,也沒有插入任何東西 – Hossam

+2

尋找錯誤,http://php.net/manual/en/function.mysql-error.php。 – chris85

回答

0

我只是需要之前的mysql_query使用緊密結合:立即再次

mysql_close(); 

,並打開一個連接使用我的功能:

db_connect(); 

非常感謝大家誰貢獻試圖解決這個問題。