0

職場では Zend 1.10.7 を使用しており、奇妙なエラーが発生していました。

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08P01]: <<Unknown error>>: 7 ERROR:  bind message supplies 0 parameters, but prepared statement "pdo_stmt_00000015" requires 1' in /var/www/ZendFramework-1.10.7/library/Zend/Db/Statement/Pdo.php:228
Stack trace:

#0 /var/www/ZendFramework-1.10.7/library/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 /var/www/ZendFramework-1.10.7/library/Zend/Db/Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array)
#2 /var/www/ZendFramework-1.10.7/library/Zend/Db/Adapter/Abstract.php(468): Zend_Db_Statement->execute(Array)
#3 /var/www/ZendFramework-1.10.7/library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query(Object(Zend_Db_Table_Select), Array)
#4 /var/www/ZendFramework-1.10.7/library/Zend/Db/Table/Abstract.php(1505): Zend_Db_Adapter_Pdo_Abstract->query(Object(Zend_Db_Table_Select))
#5 /var/www/ZendFramework-1.10.7/library/Zend/Db/Table/Abstract.php(1321): Zend_Db_Table_Abstract->_fetch(Object(Zend_Db_Table_Select))
#6 /var/w in /var/www/ZendFramework-1.10.7/library/Zend/Db/Statement/Pdo.php on line 234

誰もこれを見たことがありますか?もしそうなら、原因は何ですか?これは Firefox と IE 9 でのみ行われます。ただし、chrome は問題なく、サイトは機能します。

何かご意見は?あまりにも私、そして私のGoogleは私の挿入または選択ステートメントの1つを気にしますが、クロムではデータベース内の情報を選択、挿入、更新します。

データベースとしてPostgreSQLを使用しています

4

1 に答える 1

1

PDO クエリはバインドされたパラメーターを探しています。これは、このクエリに渡される値が動的に生成されない限り、異なるブラウザーが異なる結果を返す理由はないはずです -

クエリが次のようになっている場合:

SELECT * FROM users WHERE id = ?

必ず 1 つのパラメーターをバインドする必要があります。

$stmt->bindParam(1, $idValue);

何らかの$idValue理由で NULL を返す関数の結果である場合、または bindParam メソッド呼び出し自体がクリスマスの日にのみ true と評価される条件ステートメントにラップされている場合、あなたのような例外が発生します。これは、ステートメントの実行時に値が欠落しているためです。

編集:私の推測では、Arrayここの値PDOStatement->execute(Array)は空です。

于 2012-10-16T16:54:08.010 に答える