2016-03-23 100 views
0
$query="UPDATE `db`.`tb` SET `colA` = ?, `colB` = ?, `colC` = ?, `colD` = ?, `colE` = ?, `colF` = ?, `colG` = ? WHERE `tb`.`colA` = ? AND month(date)= ?;"; 
$stmt = $web_dbi->prepare($query); 
$stmt->bind_param("sssssssss", $colA_PHPvar, $colB_PHPvar, $colC_PHPvar, $colD_PHPvar, $colE_PHPvar, $colF_PHPvar, $colG_PHPvar, $colA_PHPvar, $colB_PHPvar); 
$stmt->execute(); 

其他信息:此準備語句更新查詢不工作...爲什麼?

  1. date是在db一列的名稱。 tb ...
  2. 此查詢時,我從Where子句中刪除AND month(date)= ?工作和它對應?變量...
+0

「不工作」是什麼意思?如果你的意思是沒有行更新,最可能的解釋是沒有行有問題的月份。 –

+0

AJAX調用返回成功消息,數據庫記錄不更新... – codr

+1

...也許是一個未提交的sql事務? –

回答

0

想通了......我是路過已格式化通過AJAX日期變量作爲月份的數字表示(即1月= 1 ...),並且包含date列作爲更新列(要格式化爲MySQL中的日期)(m-1-yyyy),實際上我只需要date Where子句中的列(月份成功匹配的月份的數字表示(date))和更新的其他字段,並在更新時正確地格式化錯誤datedate在數據庫是簡單地在第一個月(M-1-YYYY))(它可以保持不變這裏)的...

$query="UPDATE `db`.`tb` SET `colA` = ?, `colB` = ?, `colC` = ?, `colE` = ?, `colF` = ?, `colG` = ? WHERE `tb`.`colA` = ? AND month(date)= ?;"; 
$stmt = $web_dbi->prepare($query); 
$stmt->bind_param("sssssssss", $colA_PHPvar, $colB_PHPvar, $colC_PHPvar, $colE_PHPvar, $colF_PHPvar, $colG_PHPvar, $colA_PHPvar, $colB_PHPvar); 
$stmt->execute(); 

(正在通過AJAX通過的日期變量作爲colD$colD_PHPvar數字表示的月份(即1月= 1 ...)...