2017-07-29 11 views
1

私は挿入文で奇妙な問題を抱えています。mysql prepared statments insert issue

:何が起こっていることは、私は1列のみに挿入する場合、それは動作しますが、1列よりも大きな何かが挿入されないとエラーが発生していない。これは

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

誰か手掛かりがありますか?これは便利ですが、列の一部が照合]タブの下の値を持っていないと他の人がテーブルに

+1

興味があるだけ。オブジェクト指向のコードを使用しているのを見て、なぜPDOを使用しないのですか? – Strawberry

+0

'name'だけを挿入しようとしましたか?構文が正しいように見えます。 – colburton

+0

'$ stmt-> execute();'の戻り値は何ですか? 'false'の場合、' $ stmt-> error'の値は何ですか? – Progman

答えて

0

latin1_swedish_ciをお持ちの場合は、別途パラメータをバインドするようにしてくださいわからない、以下のように:

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