Php 没有连接到数据库
我在运行以下脚本时遇到问题。除了AJAX部分外,它运行正常。它不调用url“check_username.php”。我已经检查了数据库连接 任何帮助都将不胜感激。 谢谢 jquery代码-Php 没有连接到数据库,php,ajax,database,Php,Ajax,Database,我在运行以下脚本时遇到问题。除了AJAX部分外,它运行正常。它不调用url“check_username.php”。我已经检查了数据库连接 任何帮助都将不胜感激。 谢谢 jquery代码- <script type="text/javascript"> $(document).ready(function() { //the min chars for username var min_chars = 3; //result
<script type="text/javascript">
$(document).ready(function() {
//the min chars for username
var min_chars = 3;
//result texts
var characters_error = 'Minimum amount of chars is 3';
var checking_html = '<img src="images/loading.gif" /> Checking...';
//when button is clicked
$('#check_username_availability').click(function(){
//run the character number check
if($('#username').val().length < min_chars){
//if it's bellow the minimum show characters_error text
$('#username_availability_result').html(characters_error);
}else{
//else show the cheking_text and run the function to check
$('#username_availability_result').html(checking_html);
check_availability();
}
});
});
//function to check username availability
function check_availability(){
//get the username
var username = $('#username').val();
//use ajax to run the check
$.post("check_username.php", { username: username }, //This part is not being executed .
function(result){
//if the result is 1
if(result == 1){
//show that the username is available
$('#username_availability_result').html('<span class="is_available"><b>' +username + '</b> is Available</span>');
}else{
//show that the username is NOT available
$('#username_availability_result').html('<span class="is_not_available"><b>' +username + '</b> is not Available</span>');
}
});
}
</script>`
$(文档).ready(函数(){
//用户名的最小字符数
var min_chars=3;
//结果文本
var characters_error='字符的最小数量为3';
var checking_html='checking…';
//单击按钮时
$(“#检查_用户名_可用性”)。单击(函数(){
//运行字符号检查
if($('#username').val().length<最小字符){
//如果低于最小显示字符数\u错误文本
$('#用户名\可用性\结果').html(字符\错误);
}否则{
//否则,显示cheking_文本并运行函数进行检查
$('#用户名\可用性\结果').html(检查\ html);
检查可用性();
}
});
});
//用于检查用户名可用性的函数
函数检查可用性(){
//获取用户名
var username=$('#username').val();
//使用ajax运行检查
$.post(“check_username.php”,{username:username},//未执行此部分。
功能(结果){
//如果结果是1
如果(结果==1){
//显示用户名可用
$(“#用户名\可用性\结果”).html(“+username+”可用);
}否则{
//显示用户名不可用
$(“#用户名\可用性\结果”).html(“+username+”不可用);
}
});
}
`
检查\u username.php-
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('modal');
$username = mysql_real_escape_string($_POST['username']);
$result = mysql_query("SELECT username FROM users WHERE username=`$username`");
$num_rows = mysql_num_rows($result);
//if number of rows fields is bigger them 0 that means it's NOT available '
if($numrows>0) {
echo 0;
}else{
echo 1;
}
?>
您的查询返回
用户的所有行,因为您没有指定任何特定的行。因此,$result
将保存检索到的第一行(您无法确定这是哪一行)。您基本上是在随机检查一行用户名。如果您想迭代所有行,可以使用while($result=mysql\u fetch\u array(mysql\u query(…))
来实现,但我建议使用SQL
$result = mysql_query("SELECT username FROM users WHERE username=`$username`");
$num_rows = mysql_num_rows($result);
echo $num_rows;
- 询问
SELECT username FROM users WHERE username=`$username`
现在将显示username==$username
所在的所有行。因此,您将返回0行或1行(总而言之,而不是之前的#of_用户)
- 将计算返回的行数,该行数为0或1,因此您可以直接打印它
还要记住,mysql.*
函数是,因此不应在新代码中使用。您可以改用PDO或MySQLi。有关详细信息,请参阅。控制台中有错误吗?请使用所选浏览器中的开发人员控制台,查看服务器对$.post请求的实际响应以及提供的参数。您的SQL查询也是错误的,因为它将检索表中的所有用户,而不仅仅是您要查找的用户名。还有其他选择吗?