MySQLからMySQLiに切り替えようとするとかなり混乱します。非常に基本的な例を試して、それを機能させることができるかどうかを確認しています。.ajaxの代わりに.postを使用し、今のところJSONを返さないという悪い習慣を許してください。私は、クエリを機能させることができるかどうかを確認するために古いコードを使用しています。
現在、index.phpで、新しい接続を作成します。
$connection = new mysqli($host, $username, $password, $database);
if (mysqli_connect_errno()) die(mysqli_connect_error());
次に、scripts.jsファイルでjqueryを使用して、変数を収集し、処理ファイルに送信します。
$("#toolbarTitle-Login").click(function() {
var loginEmail = $("#toolbarTextbox-Email").val();
var loginPassword = $("#toolbarTextbox-Password").val();
if (loginEmail != "") {
$.post(
'ajax/loginProcess.php',
{
'email': loginEmail,
'password': loginPassword
},
function (response) {
$(".testingBox").html(response);
}
);
}
});
ここで、処理ファイルloginProcess.phpで、次のクエリを実行します。
$passwordMd5 = md5($_POST["password"]);
$email = $connection->$_POST["email"];
$password = $connection->$passwordM5;
$sql = $connection->prepare("SELECT clientId, studentEmail, parentEmail, school
FROM clients
WHERE (studentEmail = ? AND studentPassword = ?) OR (parentEmail = ? AND parentPassword = ?);");
$statement->bind_param("ssss",$email,$password,$email,$password);
$row["id"] = 0;
$row["studentEmail"] = '';
$row["parentEmail"] = '';
$row["school"] = '';
$statement->bind_result($row["id"], $row["studentEmail"], $row["parentEmail"], $row["school"]);
$statement->execute();
while($statement->fetch()) {
print $row["id"].' '.$row["studentEmail"].' '.$row["parentEmail"].' '.$row["school"].'<br />';
}
これにより、「致命的なエラー:「/home/guysandd/public_html/test/v3/ajax/loginProcess.php online8」の非オブジェクトに対するメンバー関数prepare()の呼び出し」が発生します。これは、接続を認識していませんが、どうすれば接続できるかわかりません。また、パラメーターが分離されているため、mysqli_real_escape_stringが必要かどうか疑問に思いました。
編集:少し明確にするために、私が取り組んでいるサイトには、親と学生の2つのログインを持つアカウントがあります。クエリが情報を返した後、私は彼らが親であるか学生であるかを確認し、これにより内容が変更されます。