2017-07-29 118 views
1

我對插入語句有一個奇怪的問題。發生了什麼事,如果我插入到只有一列,它的工作原理,但任何大於1列沒有得到插入沒有錯誤顯示mysql準備的語句插入問題

這工作

$db = mysqli new('localhost','root','','db'); 
$stmt = $db->prepare("insert into test (id) values(?)"); 
echo $db->error; 
$stmt->bind_param("s",$id); 
$stmt->execute(); 

但不是這樣的:

$id = 1; 
$name = "test"; 
$stmt = $db->prepare("insert into test (id,name) values(?,?)"); 
echo $db->error; 
$stmt->bind_param("ss",$id, $name); 
$stmt->execute(); 

有沒有人有線索?不知道這是有益的,但某些列沒有校對選項卡下的值和其他表有latin1_swedish_ci

+1

只是好奇;看到你在使用面向對象的代碼,爲什麼不使用PDO? – Strawberry

+0

你嘗試過單獨插入'name'嗎?你的語法看起來正確。 – colburton

+0

'$ stmt-> execute();'調用的返回值是什麼?如果它是'false','$ stmt-> error'的值是多少? – Progman

回答

0

嘗試單獨綁定的參數,如下圖所示:

$stmt = $db->prepare("insert into test (id,name) values(:id, :name)"); 
echo $db->error; 
$stmt->bind_param(":id", $id); 
$stmt->bind_param(":name", $name); 
$stmt->execute();