php – 为WHERE IN语法搜索参数SQLSRV_QUERY
发布时间:2020-12-13 22:25:49 所属栏目:PHP教程 来源:网络整理
导读:我想知道是否有办法将一些值传递给sqlsrv_query函数的参数选项.我尝试了一些东西,却无法让它发挥作用. 这个查询是我想要执行的: SELECT id,name,etcFROM sqlTableWHERE id IN ('1','2','100','314') 我想使用params选项传递WHERE IN值,如下所示: $q = "SEL
我想知道是否有办法将一些值传递给sqlsrv_query函数的参数选项.我尝试了一些东西,却无法让它发挥作用.
这个查询是我想要执行的: SELECT id,name,etc FROM sqlTable WHERE id IN ('1','2','100','314') 我想使用params选项传递WHERE IN值,如下所示: $q = "SELECT id FROM sqlTable WHERE id IN ?"; $p = array(array('1','314')); sqlsrv_query($connection,$q,$p); 现在我将值直接传递给查询字符串,但出于明显的安全原因,我想将它们作为参数传递给函数. 解决方法
考虑
PDO binded parameters,您可以在execute()中传递已定义的数组.但是,您需要准备语句,事先知道IN()子句项的数量.
try { $dbh = new PDO("sqlsrv:server=$server;database=$database",$username,$password); $sql = "SELECT * FROM sqlTable WHERE id IN (:first,:second,:third,:fourth)"; $STH = $dbh->prepare($sql); $nums = array('1','314'); $STH->execute($nums); } catch(PDOException $e) { echo $e->getMessage()."n"; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |