我有以下 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() 但它们都不起作用。谁能看到这段代码有什么问题?