我正在创建一个可用于从数据库中选择单个行的函数。函数的参数是select,table和where(这是一个数组)。
这是我到目前为止所做的:
public function select_row($select, $table, $where = '') {
$sql = "SELECT {$select} FROM {$table}";
if(!empty($where)) {
$sql .= " WHERE {$where} LIMIT 1";
} else {
$sql .= " LIMIT 1";
}
echo $sql;}
我想要更改的是$ where变量,我想将其更改为数组,如下所示:
$where = array('id' => '1');
但我不太确定如何做到这一点,我尝试了implode()但我无法理解。
非常感谢任何帮助,
基隆
答案 0 :(得分:0)
以下是如何构建where子句的示例。但我建议您使用查询构建器,例如这里是cakePHP的http://book.cakephp.org/3.0/en/orm/query-builder.html:
<?php
require 'connect.php';
$firstname = 'Alex';
$lastname = 'Smith';
$query = 'SELECT * FROM users';
$cond = array();
$params = array();
if (!empty($firstname)) {
$cond[] = "firstname = ?";
$params[] = $firstname;
}
if (!empty($lastname)) {
$cond[] = "lastname = ?";
$params[] = $lastname;
}
if (count($cond)) {
$query .= ' WHERE ' . implode(' AND ', $cond);
}
$stmt = $db->prepare($query);
$stmt->execute($params);
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
print_r($row);
}
?>