当前位置:  开发笔记 > 编程语言 > 正文

MySql在循环中准备语句

如何解决《MySql在循环中准备语句》经验,为你挑选了0个好方法。

我希望检查表中数组存储值的出现.像这样的数组:

$myarray=array("122","123","124","125");

我不想在查询中内爆数组,因为它不安全.

SELECT ledger FROM mytable WHERE ledger IN('".implode("','",$myarray)."')

我想去准备好安全声明.我试图在for循环中运行查询,但它失败了.

$not = sizeof($myarray);
for ($i = 0; $i < $not; $i++) {
    $qc = 'SELECT ledger FROM mytable WHERE ledger = ?';
    $st = $mysqli->prepare($qc);
    $st->bind_param("i", $myarray[$i]);
    $st->execute();
    $ro = $st->num_rows;
    if ($ro > 0){
        echo "number exists";
        break;
    }
}

这会抛出"对非对象调用成员函数bind_param()"错误.我相信有更好的方法可以做到这一点.有什么建议?

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有