ber*_*rdt 6 php sql oracle-call-interface
对于SQL IN子句,如何在使用PHP OCI8绑定SQL时处理未知数量的参数?
例如,给出以下查询
select * from table1
where id > :id_1
and id in (:id_array_of_unknown_size)
Run Code Online (Sandbox Code Playgroud)
和要绑定的变量数组
$bind_array = array(
':id_1' => '1',
': id_array_of_unknown_size' => array('7','2','5',),
);
Run Code Online (Sandbox Code Playgroud)
另外需要注意的是,在我的特定情况下,输入array($bind_array)可能包含也可能不包含绑定元素的子数组.它也可以是以下
select * from table1
where id > :id_1
and id != :id_2
Run Code Online (Sandbox Code Playgroud)
和
$bind_array = array(
':id_1' => '1',
':id_2' => '5',
);
Run Code Online (Sandbox Code Playgroud)
您应该将数组与另一个函数绑定 - oci_bind_array_by_name
http://php.net/manual/en/function.oci-bind-array-by-name。
你不能只用 oci_bind_by_name http://php.net/manual/en/function.oci-bind-by-name.php替换 :variable 与数组对象