将数组绑定到SQL查询中的占位符

时间:2017-06-23 12:55:35

标签: php sql oracle

我正在尝试将数组传递给我的查询占位符,但它不能像我期望的那样工作。这是查询:

select * from A where id IN (1,2,3)

这是PHP函数:

$ids=['1','2','3'];
$result = $this->queryall_array(select * from A where id IN (?,?,?),$ids);

我不确定这是否是正确的方法。 谢谢,

1 个答案:

答案 0 :(得分:0)

我们无法看到自定义queryall_array函数的内容,但是从php文档中可以找到使用oracle执行此操作的正确方法:

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn,"INSERT INTO mytab (id, text) VALUES(:id_bv, :text_bv)");

$id = 1;
$text = "Data to insert     ";
oci_bind_by_name($stid, ":id_bv", $id);
oci_bind_by_name($stid, ":text_bv", $text);
oci_execute($stid);

http://php.net/manual/en/function.oci-bind-by-name.php