次の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() を使用しようとしましたが、どちらも機能しません。このコードの何が問題なのか誰にもわかりますか?