gpt4 book ai didi

php - 将数组内爆为字符串以创建 sql 查询

转载 作者:行者123 更新时间:2023-11-29 20:56:53 25 4
gpt4 key购买 nike

我正在创建一个可用于从数据库中选择单个行的函数。该函数的参数是 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() 但我无法弄清楚。

任何帮助将不胜感激,

基隆

最佳答案

下面是如何构建 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);
}
?>

关于php - 将数组内爆为字符串以创建 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37555682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com