3

在一个页面上,我让它显示登录用户名的用户,它工作得很好。

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

帮助将不胜感激。

4

7 回答 7

9

尝试使用

$sql="SELECT * FROM $tbl_name WHERE myusername ='{$_SESSION['username']}'";

这种在字符串中使用 PHP 的变量替换能力的语法更容易阅读,至少当您必须替换字符串中的多个变量时。

于 2013-07-08T17:18:00.347 回答
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']}";
于 2013-07-08T17:18:12.693 回答
1

当您实际需要存储在其中的内容时,您会返回 myusername = $_SESSION['username'] 的字符串。删除 '' 并将变量附加到字符串。

像这样的东西:

$sql= 'SELECT * FROM $tbl_name WHERE myusername = ' 。$_SESSION['用户名'] 。'';

于 2013-07-08T17:13:51.610 回答
1
$sql="SELECT * FROM $tbl_name WHERE username ='".$_SESSION['username']."'";
$result=mysqli_query($sql);

尝试这个 ........

100% 它会起作用。

于 2020-10-09T06:21:55.900 回答
1
$result = mysql_query("SELECT * FROM tbl_task where username =  '".$_SESSION['username']."' ORDER By DateAssigned ASC ");
于 2018-01-08T01:24:41.373 回答
0

您还没有结束您的查询:-

$sql="SELECT * FROM $tbl_name WHERE myusername ='$_SESSION['username']'; // double quotes missing

甚至Stackoverflow代码高亮显示它。

于 2013-07-08T17:20:08.127 回答
0

`$sql="SELECT * FROM $tbl_name WHERE myusername ='$_SESSION[username]'";

$result=mysql_query($sql);`

更正了上面的代码。

会话内的用户名不会有引号。

于 2013-07-08T17:20:09.053 回答