我试图在创建新用户之前检查输入字段中的用户名和电子邮件是否已经存在于我的数据库中。用MySQLi检查用户名是否已经存在
这是login.php中:
<?php
session_start();
$pseudo = $_POST['pseudo'];
$mail = $_POST['mail'];
$pseudo=mysql_real_escape_string($pseudo);
$pseudo=ltrim($pseudo);
$pseudo=rtrim($pseudo);
$mail=mysql_real_escape_string($mail);
$mail=trim($mail);
$sql=mysqli_connect('localhost','root','','bdd_name');
$query=("SELECT COUNT(*) FROM t_people WHERE 'PEO_PSEUDO'='".$pseudo."' OR 'PEO_MAIL'='".$mail."'");
$result = mysqli_prepare($sql,$query);
mysqli_stmt_execute($result);
mysqli_stmt_store_result($result);
if (mysqli_stmt_num_rows($result) == 0) {
echo 1;
}
else {
echo 2;
}
mysqli_stmt_free_result($result);
mysqli_stmt_close($result);
?>
这是我的JavaScript的一部分:
var pseudo=$("#pseudo").val();
var mail=$("#mail").val();
$.ajax({
type: "POST",
url: "login.php",
data: {pseudo:pseudo, mail:mail}
}).done(function(result) {
if (result==1) {
good();
}
else if (result==2) {
bad();
}
});
谁能告诉我什么是错的呢?
我在这头,因为小时了,我无言以对......
这是使用预处理语句的错误的方式。如果你真的想使用这个语法,使用'mysqli_real_escape_string'。你看到错误信息吗? – 2013-05-05 12:21:12
当我尝试mysqli_real_escape_string时,它不断加载。我不知道为什么。而且我不知道如何显示错误信息,实际上我很小心。 – Nico 2013-05-05 12:30:25
*在打开连接之后使用*,但同样,使用准备好的语句正确的方式,就像他在回答中描述的redreggae一样。使用'error_reporting(E_ALL);'显示错误消息。 – 2013-05-05 12:36:38