gpt4 book ai didi

php - 使用 PHP 更新多个 SQL 字段

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

提前抱歉我的业余知识。我正在创建用户数据库的基础知识,我注册工作正常,但我无法让我的更新功能正常工作。

注册函数

mysql_query("INSERT INTO `users` ($fields) VALUES ($data)");

其中 $fields 和 $data 取自后填充数组:

$fields =  '`' . implode('`, `', array_keys($register_data)) . '`';
$data = '\'' . implode('\', \'', $register_data) . '\'';

更新功能

但是使用此方法更新记录不起作用。我尝试过两种方法:

mysql_query("UPDATE `users` SET ($fields) VALUES ($data) WHERE `user_id` = $user_id");

mysql_query("UPDATE `users` SET $fields = $data WHERE `user_id` = $user_id");

第一个 SQL 函数不起作用(与 INSERT 一样烦人),第二个函数仅更新数组中的一个值。

有人可以纠正我应该如何完成此操作吗?有关信息,我的数组如下:

$save_data = array(
'username' => $_POST['username'],
'password' => $_POST['password'],
'email' => $_POST['email'],
'first_name' => $_POST['first_name'],
'last_name' => $_POST['last_name'],
'bio' => $_POST['bio']
);

最佳答案

UPDATE 的语法是使用 SET name=value, name=value, ... http://dev.mysql.com/doc/refman/5.0/en/update.html

所以试试这个:

// Prepare the name-value pairs for the SET clause.
$set = array();
foreach ($register_data as $key => $value) {
$set[] = "`$key` = '$value'";
}
$set = implode(', ', $set);

// Run the query.
mysql_query("UPDATE `users` SET $set WHERE `user_id` = $user_id");

作为旁注,正如其他人指出的那样,不建议使用 mysql_query()。有http://php.net/manual/en/book.mysqli.php ,更好的是(显然),http://php.net/manual/en/book.pdo.php 。它们使用起来有点复杂,但值得花一点时间学习。

关于php - 使用 PHP 更新多个 SQL 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28702274/

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