2017-08-30 35 views
0

這裏是我的代碼:列數並不在行1匹配值計數時,Bind_param()與UPDATE語句

public function deletePost($postId,$userId){ 
    $stmt = $this->conn->prepare("UPDATE post SET active_status = ? ,modified_by =? ,modified_time=? WHERE post_id=?"); 
    $notActivePost = 0; 
    $currentTime = $this->getCurrentTime(); 
    $stmt->bind_param("ssss",$notActivePost,$userId,$currentTime,$postId); 
    $res = $stmt->execute(); 
    var_dump($notActivePost,$currentTime,$postId,$userId); 
    var_dump($stmt->error_list); 
    return $res; 
} 

我檢查了所有變量的值,它是正確的,如下:

$notActivePost = 0 //I tried this also $notActivePost = "0",also not work 
$currentTime = 2017-08-30 20:34:05 
$postId = 606 
$userId = 56 

,但我不斷收到此錯誤

列數不匹配的行值數1

我檢查所有的問題,關於這個錯誤是因爲查詢不變量的數目相同的列數結合的,但正如你看到的是在查詢4列,4可變我結合in.So我真的不知道這裏發生了什麼。

有人可以請幫助因爲我嘗試了一些方法很多already..tq

編輯:

我試圖在本地主機相同的代碼都將在直播服務器好。不過這個代碼運行,它會產生錯誤。

+3

有些事情我不清楚。你的方法被稱爲'deletePost()',但你想運行一個UPDATE。然而,你在那裏通過兩個論點而不是四個。 –

+0

您確定該消息是關於此代碼的? – Jens

+0

雅對此代碼 – ken

回答

0

10更小時後推測它出什麼問題,最後我解決it.It實際上是由表的觸發而不是數據的查詢itself.The數量造成計數不匹配列導致此錯誤

觸發插入

列數並不在行匹配值計數1

希望能幫助讀者將來解決這個疑難問題。建議如果查詢是正確的,但仍然會產生這個錯誤,只是檢查觸發你的桌子。

1

需要傳遞i如果字段的類型是integer.Considering active_status,modified_by和POST_ID的類型integer

的DO從ssss變化到iisi

public function deletePost($postId,$userId){ 
    $stmt = $this->conn->prepare("UPDATE post SET active_status = ? ,modified_by =? ,modified_time=? WHERE post_id=?"); 
    $notActivePost = 0; 
    $currentTime = $this->getCurrentTime(); 
    $stmt->bind_param("iisi",$notActivePost,$userId,$currentTime,$postId); 
    $res = $stmt->execute(); 
    var_dump($stmt->error_list); 
    return $res; 
} 
+0

爲什麼反對投票?請解釋原因 – Naincy

+0

我只是試過..它不工作太 – ken

+0

這似乎不太可能,這將解決問題,爲什麼呢?但我不是100%確定所以沒有DV從我:-) – jeroen

相關問題