我有一個登陸介面,我想使用者輸入使用者名稱時,若不存在,則提示註冊,但顯然我可能不太清楚sql語句,所以一直有問題,調試時即使輸入了資料庫中不存在的使用者名稱,也不會提示,望解答
if (!empty($_POST['login'])) {
//考慮使用者名稱不存在的情況,提示$isset_sql="select username from user where username='$username'";$is_exist=mysql_query($isset_sql); if(!$is_exist){ echo ""; exit(); }
$query = "select password from user where username='$username'";..............
回複內容:
我有一個登陸介面,我想使用者輸入使用者名稱時,若不存在,則提示註冊,但顯然我可能不太清楚sql語句,所以一直有問題,調試時即使輸入了資料庫中不存在的使用者名稱,也不會提示,望解答
if (!empty($_POST['login'])) {
//考慮使用者名稱不存在的情況,提示$isset_sql="select username from user where username='$username'";$is_exist=mysql_query($isset_sql); if(!$is_exist){ echo ""; exit(); }
$query = "select password from user where username='$username'";..............
首先,不要再用mysql_*
一系列的串連方式了。請改成PDO
或者MySQLi
然後你的問題答案:mysql_query
只是發送查詢請求到資料庫,你還需要執行mysql_fetch_assoc
來擷取資料庫的回應。
Warning: mysql_*
已經被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 ? '登入' : '未註冊';