[PHP-users 30967] PEAR DB Error: mismatchについて

木内智史 samurai @ don-quijote.jp
2006年 12月 12日 (火) 11:21:49 JST


お世話になっております。木内と申します。

現在Pear_DBを使用しているのですが、prepare後のexecuteでエラーが発生して
しまいます。
Pear_DBのバグだと思うのですが、どうなんでしょうか?
ソースを覗いた感じバグなのですが、これまでこのバグに対応したことがある方
がおられましたら、どのように対応したのかご教授いただけないでしょうか?

現象としましては、

	$query  = "SELECT * FROM foo WHERE != ?";
	$params = array( "bar" );
	$stmt   = $db->prepare($query);
	$result = $db->execute($stmt, $params);

上記のようなコードで、resultにエラーがレイズされ、エラー内容が、
「DB_Error: mismatch」となってしまうのです。
ちなみに、

	$query  = "SELECT * FROM foo WHERE = ?";

だとうまくいきます。
これは、「!」の文字列がprepare系の動作で重要な文字列となっているために起
こるエラーであることは分かっているのですが…対処法がさっぱりです…。
正当な対処法ってあるんでしょうか?

それでは、よろしくお願いいたします。

-- 
木内智史 <samurai @ don-quijote.jp>




PHP-users メーリングリストの案内