ローカル(Windows+Apache2)では問題なく動くのに、
なぜかサーバに上げると動かないって言うことがあったので一応、メモ。
なんか自分のどこが悪かったかよくわからんので(設定かなぁ)、
次起きたらまたこう対処する的なことで。
■ 環境
Linux, Apache2, PHP5.1.6, MySQL5.0.27
■ 問題のあるコード
(面倒なので適当に誤魔化してますが概要はこんなもん)
$pdo = $db->connect();
$sth = $pdo->prepare($sql);
$sth->bindParam('A', $target);
$sth->execute();
$sth = $pdo->prepare($sql);
$sth->bindParam('B', $target);
$sth->execute();
$this->conn->disconnect($pdo);
$pdo = $db->disconnect();
■ 問題点
どうやら、2回目のbindParamでスタック。bindValueでも同。
■ 対処
- 一回の接続で複数のクエリを送らない。
$pdo = $db->connect();
$sth = $pdo->prepare($sql);
$sth->bindParam('A', $target);
$sth->execute();
$pdo = $db->disconnect();
$pdo = $db->connect();
$sth = $pdo->prepare($sql);
$sth->bindParam('B', $target);
$sth->execute();
$this->conn->disconnect($pdo);
$pdo = $db->disconnect();
『送らない』とか書いちゃってるけど、結果的にそれで動いただけで、
正しいかどうかとかよくわかんね。