次のPHP関数があります。
public function signup() { $mysql = mysqli_connect(ホスト名、ユーザー名、パスワード、データベース); if (mysqli_connect_errno($mysql)) { $this->viewModel->set("pageTitle", "Signup"); $this->viewModel->set("メッセージ", "サーバーへの接続中にエラーが発生しました。"); $this->viewModel を返します。 } if ($result = $mysql->query("SELECT id FROM mailinglist WHERE email='" . $this->email . "';")) { if ($result->num_rows == 0) { $mysql->query("INSERT INTO メーリングリスト (電子メール) 値 ('" . $this->email . "');"); $this->viewModel->set("message", "すばらしい! サインアップしていただきありがとうございます " . $this->email . "."); } そうしないと { $this->viewModel->set("message", "あなたはすでにアップデートにサインアップしています!"); } } そうしないと { $this->viewModel->set("メッセージ", "メーリング リストへの追加中にエラーが発生しました。"); } $this->viewModel->set("pageTitle", "Signup"); $this->viewModel を返します。 }
これは正常に実行され、必要なものを正確に返しますが、クエリに mysqli_real_escape_string() を使用しようとすると機能しません。つまり、次のコード
public function signup() { $mysql = mysqli_connect(ホスト名、ユーザー名、パスワード、データベース); if (mysqli_connect_errno($mysql)) { $this->viewModel->set("pageTitle", "Signup"); $this->viewModel->set("メッセージ", "サーバーへの接続中にエラーが発生しました。"); $this->viewModel を返します。 } $query = $mysql->real_escape_string("SELECT id FROM mailinglist WHERE email='" . $this->email . "';"); if ($result = $mysql->query($query)) { if ($result->num_rows == 0) { $query = $mysql->real_escape_string("INSERT INTO メーリングリスト (電子メール) 値 ('" . $this->email . "');"); $mysql->クエリ($クエリ); $this->viewModel->set("message", "すばらしい! サインアップしていただきありがとうございます " . $this->email . "."); } そうしないと { $this->viewModel->set("message", "あなたはすでにアップデートにサインアップしています!"); } } そうしないと { $this->viewModel->set("メッセージ", "メーリング リストへの追加中にエラーが発生しました。"); } $this->viewModel->set("pageTitle", "Signup"); $this->viewModel を返します。 }
動作しません。これは接続の問題ではなく、 $mysql->real_escape_string() の代わりに mysqli_real_escape_string() を使用しようとしましたが、どちらも機能しません。このコードの何が問題なのか誰にもわかりますか?