我正在使用
PHP与MysqLi,我在一个我有这样的问题的情况
SELECT $fields FROM $table WHERE $this=$that AND $this2=$that2
到目前为止,我已经编写了一些代码来拼接一个我给它的数组,例如:
$search = array(name=michael,age=20) //turns into SELECT $fields FROM $table WHERE name=michael AND age=20
有没有更有效的方式来做到这一点?
我很担心MysqL注入 – 这似乎很脆弱.
谢谢!
奇怪的是,你的问题的标题基本上是它的答案.你想做这样的事情,使用MysqLi参数化查询:
原文链接:https://www.f2er.com/php/132330.html$db = new MysqLi(<database connection info here>); $name = "michael"; $age = 20; $stmt = $db->prepare("SELECT $fields FROm $table WHERE name = ? AND age = ?"); $stmt->bind_param("si",$name,$age); $stmt->execute(); $stmt->close();
mysqli section of the manual更多信息,具体涉及MySQLi_STMT相关功能.
请注意,我个人更喜欢在MysqLi上使用PDO,我不喜欢MysqLi所做的所有bind_param / bind_result内容.如果我必须使用它,我会在其周围编写一个包装器,使其工作更像PDO.