在用户登录后,我用以下语句提取已登录用户的数据:
<?php
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了。不够的下次补上。