HTML フォームを生成する PHP があり、データベース内の情報を更新するスクリプトを作成しようとしています。何らかの理由で、一部のフィールドでは機能し、他のフィールドでは機能しません。
動作しないコード:
ユーザーが詳細を変更できる PHP フォーム
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) 型です。
編集:クエリが実行されています。これにより、姓、郵便番号、番号、および電話番号のフィールドは更新されません。