在一个页面上,我让它显示登录用户名的用户完全正常。
echo "Welcome, ".$_SESSION['username']
我想创建一个Select语句,它使用与上面相同的变量来为该用户提取所有数据。
示例用户名是jsmith@gmail.com
我用它来查看编码是否有效。
$sql="SELECT * FROM $tbl_name WHERE myusername ='jsmith@gmail.com'";
$result=mysql_query($sql);
但我想使用变量;我尝试了下面的代码,但它没有用。
$sql="SELECT * FROM $tbl_name WHERE myusername ='$_SESSION['username']'";
$result=mysql_query($sql);
我肯定知道它与使用变量的SELECT语句有关,我不确定我是否正确地与变量相关。
非常感谢帮助。
答案 0 :(得分:8)
尝试使用
$sql="SELECT * FROM $tbl_name WHERE myusername ='{$_SESSION['username']}'";
这种语法在字符串中使用PHP的变量替换容量更容易阅读,至少在必须替换字符串中的多个变量时。
答案 1 :(得分:2)
基本的PHP语法规则:在字符串中嵌入数组引用时,不要在键上使用引号:
echo "$arr['key']"; // wrong
echo "$arr[key]"; // right
echo "{$arr['key']}"; // right
请注意,如果要嵌入多维数组,则需要{}
语法:
echo "$arr[foo][bar]";
被解析为
echo $arr['foo'];
echo '[bar]';
添加{}
使PHP使用整个数组键序列:
echo "{$arr['foo']['bar']}";
答案 2 :(得分:0)
当你真正需要存储在那里时,你返回一个myusername = $ _SESSION ['username']的字符串。删除''并将变量附加到字符串。
这样的事情:
$ sql ='SELECT * FROM $ tbl_name WHERE myusername ='。 $ _SESSION ['用户名']。 '';
答案 3 :(得分:0)
您尚未结束查询: -
$sql="SELECT * FROM $tbl_name WHERE myusername ='$_SESSION['username']'; // double quotes missing
即使是Stackoverflow
代码荧光笔也会显示它。
答案 4 :(得分:0)
`$ sql =“SELECT * FROM $ tbl_name WHERE myusername ='$ _ SESSION [username]'”;
$结果= mysql_query($ SQL);`
更正了上述代码。
会话中的用户名没有引号。
答案 5 :(得分:0)
$result = mysql_query("SELECT * FROM tbl_task where username = '".$_SESSION['username']."' ORDER By DateAssigned ASC ");
答案 6 :(得分:0)
$sql="SELECT * FROM $tbl_name WHERE myusername ='**".$_SESSION['username']."**'";
$result=mysql_query($sql);
尝试这个........
100%可以使用。