Select语句中的会话变量

时间:2013-07-08 17:12:00

标签: php mysql session-variables

在一个页面上,我让它显示登录用户名的用户完全正常。

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语句有关,我不确定我是否正确地与变量相关。

非常感谢帮助。

7 个答案:

答案 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%可以使用。