我想在以下查询中使用参数,但我不太确定如何操作。
$id
将为 1、2 或 3 等,我想选择其中 C.Name 为 Galleri1 或 Galleri2 等。
这是我到目前为止得到的,但我不知道如何添加 $id。
function getGallery($id){
$data = array();
$Q = $this->db->query('SELECT P.*, C.Name AS CatName
FROM products AS P
LEFT JOIN categories C
ON C.id = P.category_id
WHERE C.Name = "Galleri($id)"
AND p.status = "active"
');
更新:我正在使用 PHP 和 MySQL
最佳答案
看看this PHP manual .
首先,您为图库名称创建一个字符串。 “Galleri1”、“Galleri2”等。然后将该字符串作为参数绑定(bind)到查询。
像这样:
$sth = $this->prepare('SELECT P.*, C.Name AS CatName
FROM products AS P
LEFT JOIN categories C
ON C.id = P.category_id
WHERE C.Name = ?
AND p.status = "active"
');
$gallery_name = "Galleri$id";
$sth->bind_param( 1, $gallery_name );
$q = $sth->execute();
像其他回答者建议的那样从参数构建查询字符串可能会为SQL injection attacks打开大门如果你不小心的话。例如,如果 $id="' OR 1=1 OR C.Name !='"
将其连接到查询字符串会发生什么?
使用参数绑定(bind)(如我上面所示)可以防止此问题。
关于php - 如何连接查询中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1835600/