gpt4 book ai didi

php - 参数化查询未知总参数

转载 作者:行者123 更新时间:2023-11-29 03:01:17 25 4
gpt4 key购买 nike

我正在使用 safemysql 类进行参数化查询 https://github.com/colshrapnel/safemysql .通常,在准备查询时,它是这样的:

$entries = $db->getAll("SELECT * FROM table WHERE age = ?i AND name = ?s ",$age,$name);

这种我事先知道要解析的参数总数的查询非常直接,但似乎我被堆积在我不知道我将使用多少参数的查询中 - 例如。搜索表单:

我想做的是参数化以下查询:

if($_POST['nameparts']){

$parts = explode(' ',$_POST['nameparts']);

foreach((array)$parts as $part){

$q .= " AND ( `name` LIKE '%".$part."%' OR `firstname` LIKE '%".$part."%' ) ";

}

if($_POST['age'])
$q .= " AND `age` = '".$_POST['age']."' ";

$entries = $dbs->getAll("SELECT * FROM table WHERE 1 = 1 ".$q." ");

有什么建议吗?

最佳答案

safemysql 似乎不支持可变数量的占位符(否则您可以在查询的同时构建参数数组)。但是您可以使用像 escapeString(...) 这样的方法。它会给你同样的安全级别,但不是那么优雅。例如:

$q .= " AND `age` = ".$dbs->escapeInt($_POST['age')]." ";

关于php - 参数化查询未知总参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23256891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com