通过mysqli :: query中的变量传递null

时间:2013-04-23 21:40:13

标签: php mysqli

我有一个特殊情况需要使用mysqli :: query而不是mysqli :: prepare。我试图通过变量将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 ok,但这对我没有好处。

同样,在这种情况下我不能使用准备好的声明。有没有办法将null传递给mysqli查询?

1 个答案:

答案 0 :(得分:0)

你不能使用这个陈述:

$procedureArguments = '$this->id, ' . ( is_null($val) ? 'NULL' : $val );
$qry = $this->db->query('CALL my_stored_procedure(' . $procedureArguments . ')');