【发布时间】:2013-04-29 08:36:07
【问题描述】:
在创建新用户之前,我尝试检查输入字段中的用户名和电子邮件是否已存在于我的数据库中。
这是 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。您是否看到错误消息? -
当我尝试 mysqli_real_escape_string 时,它一直在加载。我不知道为什么。而且我不知道如何显示错误消息,实际上我很菜鸟。
-
在您打开连接之后使用它,但同样,以正确的方式使用准备好的语句,就像他的回答中描述的redreggae。使用
error_reporting(E_ALL);显示错误消息。 -
谢谢,我会阅读文档中的错误函数。
标签: php mysql sql login mysqli