【发布时间】:2018-03-02 00:30:43
【问题描述】:
例如,我们有一个mysqli 查询select:
$sql = "SELECT * FROM table WHERE cat = 1";
并且想在上面基于query string 的查询中附加一些额外的query,我尝试了这样的事情:(这只是示例,不是我的原始代码)
$keyw = $_GET["k"];
if($keyw){
$cleanKeyw = mysqli_real_escape_string($connection, $keyw);
$addQ= "AND name LIKE '%$cleanKeyw%' OR text LIKE '%$cleanKeyw%'";
} else {
$addQ= "";
}
$sql = "SELECT * FROM table WHERE cat = 1 $addQ";
不是这个,我几乎还有 10 个statment 想要附加到当前的query
如果设置了k 查询字符串,我想添加query,它可以工作,但我想确定,这样做是安全的还是正确的方法?因为这是基于我的逻辑,我是php 的新手,不知道有技术方法可以做到这一点吗?
我还想知道有没有办法通过prepared statments 做到这一点?
【问题讨论】:
-
这就是我正在使用的!好问题!
-
是的,您可以使用准备好的语句构建动态查询。 stackoverflow.com/a/6635824/2960971 ... 但是使用 PDO 会容易得多,因为绑定过程更加流畅/易于接受。
-
外部文章指南(google结果):Dynamically Bind Params in Prepared Statements with MySQLi