我有 PHP 生成一个 HTML 表单,我正在尝试编写一个脚本来更新数据库中的信息。出于某种原因,它适用于某些领域,而不适用于其他领域。
不起作用的代码:
用户可以在其中更改详细信息的 PHP-Form
echo"<form name='details'>";
echo"<p>Surname: <input type='text'id='surname' value='".$row['Surname']."'/></p>;
<p>Telephone: <input type='text'id='phone' value='".$row['Telephone']."'/></p>;
<p>Postcode: <input type='text' id='postcode' value='".$row['Postcode']."'/></p>;
<p>House/Flat Number: <input type='text' id='number' value='".$row['Number']."'/></p>";
AJAX - 通过查询字符串向服务器发送更改
var sname = document.getElementById('surname').value;
var tel = document.getElementById('phone').value;
var num = document.getElementById('number').value;
var pcode = document.getElementById('postcode').value;
var queryString = "?username=" + username +"&email="+email....";
ajaxRequest.open("GET", "url" + queryString, true);
ajaxRequest.send(null);
PHP - 执行更新命令
//connect to server
...
//get variables
$sname = $_GET['sname'];
$pcode = $_GET['pcode'];
$tel = $_GET['tel'];
$num=$_GET['num'];
//process update
$update ="UPDATE User SET Surname='$sname',Telephone='$tel',Number='$num',
Postcode='$pcode' WHERE Username='$username'";
//if query, display success
if(mysqli_query($update))
{
echo"success";
}
else
{
echo"error";
}
//else display error
查询执行良好,但值未显示在数据库中。我的其他变量(用户名、密码等)都更新正常。所有数据库字段都是 VARCHAR(80) 类型。
编辑:我确实有正在执行的查询。这仍然会导致未更新姓氏、邮政编码、号码和电话字段。