另一天另一个问题......
我需要编写PHP脚本来更新mySQL数据库。
例如:当用户想要更改其名字或姓氏等时更新个人资料页面
到目前为止,这是我的PHP脚本,它不起作用。请帮忙!
<?php
@ $db = new MySQLi('localhost','root','','myDB');
if(mysqli_connect_errno()) {
echo 'Connection to database failed:'.mysqli_connect_error();
exit();
}
if (isset($_GET['id'])) {
$id = $db->real_escape_string($_GET['id']);
$First_Name2 = $_POST['First_Name2'];
$query = "UPDATE people SET $First_Name2 = First_Name WHERE `Id` = '$id'";
$result = $db->query($query);
if(! $result)
{
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
$db->close();
}
?>
感谢你。
答案 0 :(得分:3)
你的sql错了。除了广泛开放的SQL injection attack漏洞之外,您还会生成糟糕的SQL。
e.g。考虑提交&#34; Fred&#34;作为名字:
$First_Name2 = "Fred";
$query = "UPDATE people SET Fred = First_name WHERE ....";
现在你要告诉数据库更新字段名称&#34; Fred&#34;到&#34; First_Name&#34;中的值领域。您的价值必须引用并反转:
$query = "UPDATE people SET First_name = '$First_Name2' ...";
你也在混合mysqli和mysql数据库库,就像在街上蹒跚而行的醉汉。 PHP的db库和函数/方法调用是 NOT 可互换的。
简而言之,这段代码是纯粹的货物编程。