加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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";
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读