[英]Update Multiple Rows in one PHP
我在一个表中有三行三列
id type value
1 gold 1000.00
2 silver 32.21
3 platinum 1500.00
我的页面上有一个表单,其中包含三个输入来填写更新后的值,并且正在使用ajax将这些值发送到update_values.php
下面的代码有效,但是我很好奇是否有更有效/适当的方法来做到这一点。 在此先感谢您的知识提升!
的PHP
//Pull data from settings update
$gold=$_POST['gold'];
$silver=$_POST['silver'];
$plat=$_POST['plat'];
//Configure and Connect to the Database
include_once('creds.php');
include_once('db_conn.php');
mysqli_select_db($con,"metals");
//Insert Data into table & return status
$select="Select * FROM metals";
$query=mysqli_query($con,$select);
$update="UPDATE metals SET value = '".$gold."' WHERE id = 1";
$update2="UPDATE metals SET value = '".$silver."' WHERE id = 2";
$update3="UPDATE metals SET value = '".$plat."' WHERE id = 3";
$query=mysqli_query($con,$update);
$query2=mysqli_query($con,$update2);
$query3=mysqli_query($con,$update3);
if($query && $query2 && $query3){
echo "Updated!";
}
else{ echo "An error occurred!"; };
mysqli_close($con);
为什么不使用金属名称作为密钥?
$update="UPDATE metals SET value = '".$gold."' WHERE type = 'gold'";
而且您确实需要切换到准备好的语句 。 您对SQL注入持开放态度
您可以使用如下CASE
子句:
$query = "UPDATE metals SET value = CASE id WHEN 1 THEN $gold WHEN 2 THEN $silver WHEN 3 THEN $plat END";
但是,对于三行来说,这似乎有些过大。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.