gpt4 book ai didi

PHP PDO插入数据库函数问题

转载 作者:行者123 更新时间:2023-11-30 01:31:16 24 4
gpt4 key购买 nike

所以我正在创建一个基本的 cms 应用程序来尝试更深入地学习 PDO,但我似乎偶然发现了一个问题。我希望能够使用函数将数据插入 MySQL 数据库,到目前为止我已经得到了这段代码...

    public function insert($table, $rows, $values) {

$data = $values;

$STH = $this->DBH->("INSERT INTO `" . $table . "` (". $rows . ") values (?, ?, ?)");

}

值的问号是否代表我将输入数据库的数据条数?如果是这样,我如何知道将根据 $data 数组输入的数据量? (所有 $values 都将以“value、value2、value3”等格式输入)

希望我已经清楚地表达了我的要求,我很难解释自己,哈哈..谢谢。

最佳答案

只要您的值是一个数组,您就可以使用随机数量的值执行准备好的语句。示例(未经测试):

public function insert($table, $rows, $values) {
$params = rtrim(", ", str_repeat("?, ", count($values)));
try {
$stmt = $this->DBH->prepare("INSERT INTO $table ($rows) VALUES ($params)");
for($i = 1; $i <= count($values); $i++) {
$stmt->bindValue($i, $values[$i-1]);
}
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $e) {
echo "Oops... {$e->getMessage()}";
}
}

编辑 仅传递两个参数($table$data 作为关联数组),您可以执行类似的操作(未经测试) :

public function insert($table, $data) {
$keys = array_keys($data);
$values = array_values($data);
$params = rtrim(", ", str_repeat("?, ", count($values)));
try {
$stmt = $this->DBH->prepare("INSERT INTO $table (`".implode("`,`", $keys)."`) VALUES ($params)");
$stmt->execute($values);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $e) {
echo "Oops... {$e->getMessage()}";
}
}

关于PHP PDO插入数据库函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17429164/

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