1、錯誤查詢語句:$sql='select * from sh_admin where username=$username and password=$password limit 1';2、正確查詢語句:$sql = "select * from sh_admin where username = '{$username}' and password = '{$password}' limit 1";
當PHP操作mysql資料庫時為什麼非得用 '{$username}'的方式才能查詢,PHP文法中雙引號就能解析變數啊 ,為什麼我用第一種會出錯呢?
回複內容:
1、錯誤查詢語句:$sql='select * from sh_admin where username=$username and password=$password limit 1';2、正確查詢語句:$sql = "select * from sh_admin where username = '{$username}' and password = '{$password}' limit 1";
當PHP操作mysql資料庫時為什麼非得用 '{$username}'的方式才能查詢,PHP文法中雙引號就能解析變數啊 ,為什麼我用第一種會出錯呢?
1、變數$username和$password在單引號裡面是不解析的
2、字元型欄位username和password後面的值是需要加引號的。
$sql='select * from sh_admin where username="'.$username.'" and password="'.$password.'" limit 1';
你第一條sql用的是單引號啊 所以出錯
是用
$sql="select * from sh_admin where username=$username and password=$password limit 1";
就沒問題了
同意樓上,字串是要加引號的。
調試一下 將$sql
輸出一下,一眼就能看出了!
第一句 單引號裡面的變數不解析,且sql裡面 字串是要引起來的