PHP:在单个查询中更新多个MySQL字段

时间:2011-03-10 00:39:32

标签: php mysql sql sql-update

我基本上只是尝试更新表格中的多个值。最好的方法是什么?这是当前的代码:

$postsPerPage = $_POST['postsPerPage'];
$style = $_POST['style'];

mysql_connect ("localhost", "user", "pass") or die ('Error: ' . mysql_error());
mysql_select_db ("db");

mysql_query("UPDATE settings SET postsPerPage = $postsPerPage WHERE id = '1'") or die(mysql_error());

我想要包含的另一个更新是:

mysql_query("UPDATE settings SET style = $style WHERE id = '1'") or die(mysql_error());

谢谢!

4 个答案:

答案 0 :(得分:46)

使用逗号分隔添加多个列:

UPDATE settings SET postsPerPage = $postsPerPage, style= $style WHERE id = '1'

但是,你没有消毒你的输入?这意味着任何随机黑客都可能破坏您的数据库。请参阅此问题:What's the best method for sanitizing user input with PHP?

另外,样式是数字还是字符串?我假设一个字符串,所以需要引用它。

答案 1 :(得分:6)

逗号分隔值:

UPDATE settings SET postsPerPage = $postsPerPage, style = $style WHERE id = '1'"

答案 2 :(得分:1)

如果您使用pdo,它将看起来像

$sql = "UPDATE users SET firstname = :firstname, lastname = :lastname WHERE id= :id";
$query = $this->pdo->prepare($sql);
$result = $query->execute(array(':firstname' => $firstname, ':lastname' => $lastname, ':id' => $id));

答案 3 :(得分:0)

我想你可以使用:

<kbase name = "rules" packages = "com.xxx.drools">