提取含字母使用者名稱資料出錯的問題

來源:互聯網
上載者:User
在使用者登入後,我用以下語句提取已登入使用者的資料:
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了。不夠的下次補上。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.