2016-12-22 1 views
0

がうまく機能している:複数のprepare文(mysql、PDO)を使用するにはどうすればよいですか?この私のPDO文のよう

$pdo = $db->prepare('INSERT INTO animals (age) values(:age)'); 
$pdo->execute(array(':age' => $_POST['age'],)); 

$pdo = $db->prepare('INSERT INTO people (name) values(:name)'); 
$pdo->execute(array(':name' => $_POST['name'],)); 

$pdo = $db->prepare("UPDATE animals SET age =? WHERE id=LAST_INSERT_ID();"); 
$pdo->execute(array($age)); 

しかし、今、私の「更新」の文ではありません。

$pdo = $db->prepare("UPDATE animals SET name =? WHERE id=LAST_INSERT_ID();"); 
$pdo->execute(array($name)); 

私はより多くの準備文を使用していた場合、UPDATEステートメントは、もはや機能していませんもう働いている。

+1

別の変数名を指定してください。 '$ stmt1''' $ stmt2'です。それを使った後の文章を 'close()'します。 – JustOnUnderMillions

+0

変数$ pdo1と$ pdo2を使用しようとしましたが、SQLエラーメッセージ 'Undefined variable'を取得しました – Jarla

+0

いいえ、間違いました。$ pdo1と$ pdo2を使って作業しています – Jarla

答えて

0
$stmt1 = $db->prepare('INSERT INTO people (name) values(:name)'); 
$stmt1->execute(array(':name' => $_POST['name'],)); 

$stmt2 = $db->prepare("UPDATE animals SET name =? WHERE id=LAST_INSERT_ID();"); 
$stmt2->bindParams(1,$name); 
$stmt2->execute(); 

//did you now that you can do this 
//$name='newvalue'; 
//$stmt2->execute(); 
//$name='nextvalue'; 
//$stmt2->execute(); 
+0

OPとはどのような違いがありますか? –

+0

欺かれる可能性のある人は:この回答は詐欺です。変数名のジャグリングは何も影響しません。 –

+1

@あなたの常識上記のコメントでOPが言っていることを見てください。 :-) – JustOnUnderMillions

関連する問題