用于更新mySQL数据库的PHP脚本

时间:2014-08-15 16:38:44

标签: php mysql sql-update

另一天另一个问题......

我需要编写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();
}
?>

感谢你。

1 个答案:

答案 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 可互换的。

简而言之,这段代码是纯粹的货物编程。