我有以下 PHP 函数:
公共函数注册(){ $mysql = mysqli_connect(主机名,用户名,密码,数据库); if (mysqli_connect_errno($mysql)) { $this->viewModel->set("pageTitle", "Signup"); $this->viewModel->set("message", "连接服务器时出错。"); 返回 $this->viewModel; } if ($result = $mysql->query("SELECT id FROM mailinglist WHERE email='" . $this->email . "';")) { if ($result->num_rows == 0) { $mysql->query("INSERT INTO mailinglist (email) VALUES ('" . $this->email . "');"); $this->viewModel->set("message", "太好了!感谢您注册" . $this->email . "."); } 别的 { $this->viewModel->set("message", "你已经注册了更新!"); } } 别的 { $this->viewModel->set("message", "添加邮件列表时出错。"); } $this->viewModel->set("pageTitle", "Signup"); 返回 $this->viewModel; }
哪个运行良好并且完全返回我想要的,但是,如果我尝试使用 mysqli_real_escape_string() 来查询,它就不起作用。也就是下面的代码
公共函数注册(){ $mysql = mysqli_connect(主机名,用户名,密码,数据库); if (mysqli_connect_errno($mysql)) { $this->viewModel->set("pageTitle", "Signup"); $this->viewModel->set("message", "连接服务器时出错。"); 返回 $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 mailinglist (email) VALUES ('" . $this->email . "');"); $mysql->查询($查询); $this->viewModel->set("message", "太好了!感谢您注册" . $this->email . "."); } 别的 { $this->viewModel->set("message", "你已经注册了更新!"); } } 别的 { $this->viewModel->set("message", "添加邮件列表时出错。"); } $this->viewModel->set("pageTitle", "Signup"); 返回 $this->viewModel; }
不起作用。连接不是问题,我尝试使用 mysqli_real_escape_string() 而不是 $mysql->real_escape_string() 但它们都不起作用。谁能看到这段代码有什么问题?