PDO PHP在BetweenPlaceholders中添加“AND”(PDO PHP Adding “AND” in BetweenPlaceholders)
我想在我的sql查询的键和值对参数之间添加“AND”,但我不知道如何。 我试图搜索网络,但无法找到解决方案。
$cdatahome = fetchCategory(array("status"=>"1","home"=>"1")); function fetchCategory(array $conditions){ $db = Core::getInstance(); $sql = "SELECT id, title FROM ruj_category WHERE "; $params = array(); foreach ($conditions as $column => $value) { if (preg_match('/^[a-z-.]+$/', $column)) { $sql .= "$column = ?"; $params[] = $value; } } $sql .= " order by title asc"; $res = $db->dbh->prepare($sql); $res->execute(array_values($params)); $res = $res->fetchAll(PDO::FETCH_ASSOC); return $res;I would like to add " AND " in between the key and value pair arguments for my sql query but I don't know how. I have tried search the net but unable to find a solution.
$cdatahome = fetchCategory(array("status"=>"1","home"=>"1")); function fetchCategory(array $conditions){ $db = Core::getInstance(); $sql = "SELECT id, title FROM ruj_category WHERE "; $params = array(); foreach ($conditions as $column => $value) { if (preg_match('/^[a-z-.]+$/', $column)) { $sql .= "$column = ?"; $params[] = $value; } } $sql .= " order by title asc"; $res = $db->dbh->prepare($sql); $res->execute(array_values($params)); $res = $res->fetchAll(PDO::FETCH_ASSOC); return $res;最满意答案
$cdatahome = fetchCategory(array("status"=>"1","home"=>"1")); function fetchCategory(array $conditions){ $db = Core::getInstance(); $sql = "SELECT id, title FROM ruj_category WHERE "; $params = array(); $i = 0; foreach ($conditions as $column => $value) { if (preg_match('/^[a-z-.]+$/', $column)) { if($i != 0){ $sql .= ' AND '; } $sql .= "$column = ?"; $params[] = $value; $i++; } } $sql .= " order by title asc"; $res = $db->dbh->prepare($sql); $res->execute(array_values($params)); $res = $res->fetchAll(PDO::FETCH_ASSOC); return $res; $cdatahome = fetchCategory(array("status"=>"1","home"=>"1")); function fetchCategory(array $conditions){ $db = Core::getInstance(); $sql = "SELECT id, title FROM ruj_category WHERE "; $params = array(); $i = 0; foreach ($conditions as $column => $value) { if (preg_match('/^[a-z-.]+$/', $column)) { if($i != 0){ $sql .= ' AND '; } $sql .= "$column = ?"; $params[] = $value; $i++; } } $sql .= " order by title asc"; $res = $db->dbh->prepare($sql); $res->execute(array_values($params)); $res = $res->fetchAll(PDO::FETCH_ASSOC); return $res;更多推荐
发布评论