0

mysqli::prepare ではなく mysqli::query を使用する必要がある特別なケースがあります。変数を介して null をストアド プロシージャに渡そうとしています。準備されたステートメントで動作する以下:

$val = null;
$stmt = $this->db->prepare('CALL my_stored_procedure(?, ?)');
$stmt->bind_param('ii', $this->id, $val);
etc...

クエリでは機能しません:

$val = null;
$qry = $this->db->query("CALL my_stored_procedure($this->id, $val)");
etc...

結果:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1, )'

明示的に null を渡すことはできますが、これは役に立ちません。

繰り返しますが、この場合、準備済みステートメントは使用できません。mysqli クエリに null を渡す方法はありますか?

4

1 に答える 1

0

このステートメントを使用できませんでした:

$procedureArguments = '$this->id, ' . ( is_null($val) ? 'NULL' : $val );
$qry = $this->db->query('CALL my_stored_procedure(' . $procedureArguments . ')');
于 2013-04-23T21:47:26.147 に答える