我有一个登陆界面,我想用户输入用户名时,若不存在,则提示注册,但显然我可能不太清楚sql语句,所以一直有问题,调试时即使输入了数据库中不存在的用户名,也不会提示,望解答
if (!empty($_POST['login'])) {
<code>//考虑用户名不存在的情况,提示 $isset_sql="select username from user where username='$username'"; $is_exist=mysql_query($isset_sql); if(!$is_exist){ echo "<script>alert('当前用户不存在,请您检查或选择注册!');window.location.href='article.login.php'</script>"; exit(); } </code>
<code>$query = "select password from user where username='$username'"; ..............</code>
我有一个登陆界面,我想用户输入用户名时,若不存在,则提示注册,但显然我可能不太清楚sql语句,所以一直有问题,调试时即使输入了数据库中不存在的用户名,也不会提示,望解答
if (!empty($_POST['login'])) {
<code>//考虑用户名不存在的情况,提示 $isset_sql="select username from user where username='$username'"; $is_exist=mysql_query($isset_sql); if(!$is_exist){ echo "<script>alert('当前用户不存在,请您检查或选择注册!');window.location.href='article.login.php'</script>"; exit(); } </code>
<code>$query = "select password from user where username='$username'"; ..............</code>
首先,不要再用mysql_*
一系列的连接方式了。请改成PDO
或者MySQLi
然后你的问题答案:mysql_query
只是发送查询请求到数据库,你还需要执行mysql_fetch_assoc
来获取数据库的回应。
Warning: mysql_*
已经被PHP正式移除。
<code class="php">// 连接数据库部分 $db = new PDO('mysql:host=localhost;dbname=数据库名称','用户名','密码'); $db->exec('set names utf8'); // 使用预处理解决SQL注入漏洞的问题 $stmt = $db->prepare('select username from user where username = :username'); // 绑定参数 $stmt->bind(':username',$username,PDO::PARAM_STR); // 执行查询 $stmt->execute(); // 获取数据 $user = $stmt->fetchColumn(); echo $user ? '已注册' : '未注册'; </code>