![](/img/trans.png)
[英]How can I detect, using php, if the machine has oracle (oci8 and/or pdo_oci) installed?
[英]How to bind an array contains string to oracle query (IN clause) using any method(oci/pdo) in PHP?
我有一个数组,如下所述:
数组是$ number
array(84) { [0]=> string(0) "" [1]=> string(10) "12345678" [2]=> string(10) "12345679" [3]=> string(10) "12345610" [4]=> string(10) "12345611" [5]=> string(10) "12345612" [6]=> string(10) "12345613" [7]=> string(10) "12345614"}
现在,我要使数组绑定到我的sql查询,如下所示:
$sql = " SELECT id,
FROM cust_data
WHERE whatever IN (:number)";
我尝试使用以下方法:
$stid = oci_parse($conn, $sql); //Query SQL
$idCollection = oci_new_collection($conn, 'ODCINUMBERLIST', 'SYS');
foreach ($number as $num) {
$idCollection->append($num);
}
oci_bind_by_name($stid, ':number', $idCollection,-1, SQLT_NTY);
oci_execute($stid, OCI_DEFAULT);
oci_fetch_all($stid,$result);
var_dump( $result);
但这只是给我结果
数组(0){}
谢谢。
请参见Oracle免费书中的“在IN子句中绑定多个值” p169页https://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250.html
总之,对于少量的值,请使用带有绑定变量的固定SQL字符串。 如果数据值少于SQL中的实际绑定变量,则绑定null。 对于更大的列表,您可以构建一个SQL字符串:但仍使用绑定变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.