繁体   English   中英

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

[英]PHP: Update multiple MySQL fields in single query

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

$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());

谢谢!

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

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

但是,你没有消毒你的输入? 这意味着任何随机黑客都可能破坏您的数据库。 看到这个问题: 用PHP清理用户输入的最佳方法是什么?

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

逗号分隔值:

UPDATE settings SET postsPerPage = $postsPerPage, style = $style WHERE id = '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));

我猜你可以用:

$con = new mysqli("localhost", "my_user", "my_password", "world");
$sql = "UPDATE `some_table` SET `txid`= '$txid', `data` = '$data' WHERE `wallet` = '$wallet'";
if ($mysqli->query($sql, $con)) {
    print "wallet $wallet updated";
}else{
    printf("Errormessage: %s\n", $con->error);
}
$con->close();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM