在使用者登入後,我用以下語句提取已登入使用者的資料:
include("IncDB.php");
session_start () ;
$result=mysql_query("SELECT * FROM userlinks where id='a02' and userid=".$_SESSION['id']." order by datetime desc limit 1",$link);
$row = mysql_fetch_row($result);
echo "$row[1]";
echo"
";
echo "$row[2]";
mysql_close($link);
?>
問題是當全數字使用者登入時能正確顯示所提取的資料,但如果使用者名稱含字母或漢字,顯示內容為空白,什麼都沒有;並且還報錯:Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in....為什嗎?
我的資料庫和網頁都是用的UTF-8編碼。資料庫裡面是有資料的,不是為空白。謝謝我快瘋了。。。。
回複討論(解決方案)
當全數字使用者登入時能正確顯示所提取的資料,但如果使用者名稱含字母或漢字,顯示內容為空白,什麼都沒有並且還報錯:Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in....
字串要用引號括起,這是常識!
$result=mysql_query("SELECT * FROM userlinks where id='a02' and userid=".$_SESSION['id']." order by datetime desc limit 1",$link) or die(mysql_error());
$result=mysql_query("SELECT * FROM userlinks where id='a02' and userid='".$_SESSION['id']."' order by datetime desc limit 1",$link);
這樣是否更清晰點呢
$result = mysql_query("SELECT * FROM userlinks where id='a02' and userid='$_SESSION[id]' order by datetime desc limit 1",$link);
我真的是菜鳥一個,請見諒。沒太懂。區別是不是就是session那裡應該用單引號,而我用的雙引號?。但我看樓上也有人回複用雙引號啊。
我用了引號的~~
是多了後面die那段代碼嗎?
userid='aa' 這裡的aa需要引號括起來,單引號和雙引號都可以。
你echo 你的sql就清楚了
哥,我的原來就有引號啊。
$result=mysql_query("SELECT * FROM userlinks where id='a02' and userid=".$_SESSION['id']." order by datetime desc limit 1",$link);
userid=".$_SESSION['id']." order
在 sql 指令中括起 $_SESSION['id'] 的值的引號在哪裡?
你有的只是組裝 php 字串的引號
$_SESSION['id'] = 'abc123';$sql = "SELECT * FROM userlinks where id='a02' and userid=".$_SESSION['id']." order by datetime desc limit 1";echo $sql; //自己看看userid欄位的值有沒有用引號括起來
哥一看就是高手。是不是應該這樣?
$result=mysql_query("SELECT * FROM userlinks where id='a02' and userid='".$_SESSION['id']." 'order by datetime desc limit 1",$link);
我需要多加一個單引號就可以了吧?我很菜,而且很笨,麻煩啊。
我是手機上的論壇,我記得我也這麼加過引號的,好像也不行。
謝謝xuzuning和jordan102兩位哥!!要是能解決了,我能各給兩位30嗎?
userid='".$_SESSION['id']." 'order 這樣是不行的
要 userid='".$_SESSION['id']."' order 這樣
不然就多了個空格又查不到了
我能各給兩位30麼
不行,除非你給文章加分!
好的,我知道了。如果我回去測試解決了,一定加分。謝謝
$result=mysql_query("SELECT * FROM userlinks where id='a02' and userid=".$_SESSION['id']." order by datetime desc limit 1",$link);
改為
$result=mysql_query("SELECT * FROM userlinks where id='a02' and userid= ‘".$_SESSION['id']." ’ order by datetime desc limit 1",$link);
謝謝xuzuning和jordan102和fdipzone,已經解決了。謝謝!
為什麼我只有10分可用?好像只能增10分了,就給xuzuning和jordan102各20了。不夠的下次補上。