我正在尝试使用基于我的网页浏览中的用户名的PHP从数据库中检索特定用户的信息,但它显示错误:
解析错误:语法错误,意外T_ENCAPSED_AND_WHITESPACE, 期待C:\ wamp \ www \中的T_STRING或T_VARIABLE或T_NUM_STRING 第5行的文件夹\ profileview.php
代码
<?php
// Connects to your Database
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());
$SQL="SELECT * FROM members WHERE userName=$_SESSION['userName']";
or die(mysql_error());
$data = mysql_query($SQL);
Print "<table border cellpadding=3>";
while($info = mysql_fetch_array( $data ))
{
Print "<tr>";
Print "<th>First Name:</th> <td>".$info['fname'] . "</td> ";
Print "<th>Middle Name:</th> <td>".$info['mname'] . "</td> ";
Print "<th>Last Name:</th> <td>".$info['lname'] . "</td> ";
Print "<th>UserName:</th> <td>".$info['userName'] . "</td> ";
Print "<th>Gender:</th> <td>".$info['gender'] . "</td> ";
Print "<th>Date Of Birth:</th> <td>".$info['dob'] . "</td> ";
Print "<th>Mobile Number:</th> <td>".$info['mobile'] . "</td> ";
Print "<th>Pet:</th> <td>".$info['pet'] . " </td></tr>";
}
Print "</table>";
?>
我该如何解决这个问题?
答案 0 :(得分:1)
可能有点晚了,但如果你还没有解决问题,那就行了。
<?php
// Connects to your Database
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());
$SQL = "SELECT * FROM members WHERE userName='" . $_SESSION['userName'] . "'" or die(mysql_error());
$data = mysql_query($SQL);
echo "<table border cellpadding=3>";
while ($info = mysql_fetch_array( $data )) {
echo "<tr>";
echo "<th>First Name:</th> <td>".$info['fname'] . "</td> ";
echo "<th>Middle Name:</th> <td>".$info['mname'] . "</td> ";
echo "<th>Last Name:</th> <td>".$info['lname'] . "</td> ";
echo "<th>UserName:</th> <td>".$info['userName'] . "</td> ";
echo "<th>Gender:</th> <td>".$info['gender'] . "</td> ";
echo "<th>Date Of Birth:</th> <td>".$info['dob'] . "</td> ";
echo "<th>Mobile Number:</th> <td>".$info['mobile'] . "</td> ";
echo "<th>Pet:</th> <td>".$info['pet'] . " </td></tr>";
}
echo "</table>";
?>
答案 1 :(得分:0)
$SQL="SELECT * FROM members WHERE userName=$_SESSION['userName']";
or die(mysql_error());
试试这个
$SQL="SELECT * FROM members WHERE userName=$_SESSION['userName']"
or die(mysql_error());
答案 2 :(得分:0)
替换此声明:
$SQL="SELECT * FROM members WHERE userName=$_SESSION['userName']";
有了这个:
$SQL=mysql_query("SELECT * FROM members WHERE userName='".$_SESSION['userName']."'")
or die(mysql_error());
答案 3 :(得分:0)
试试这个
$SQL=mysql_query("SELECT * FROM members WHERE userName='".$_SESSION['userName']."'");
or die(mysql_error());
答案 4 :(得分:0)
您必须将$ SQL调用更改为:
$SQL="SELECT * FROM members WHERE userName=$_SESSION['userName']" or die(mysql_error());
提示: 您正在使用已弃用的mysql_ *函数。切换到mysqli或PDO。
你永远不应该将变量直接放入你的查询中,因为这可以为sql注入打开一扇门。
改为使用prepared statements。
答案 5 :(得分:0)
$SQL="SELECT * FROM members WHERE `userName`='".$_SESSION['userName']."'";
答案 6 :(得分:0)
您的代码包含一些我想在此强调的问题。
现在记住所有这些,你的查询就像
$SQL='SELECT * FROM members WHERE userName=\''.mysql_real_escape_string(trim($_SESSION['userName'])).'\';
PS:请不要练习使用mysql_函数,因为它们已被弃用。
答案 7 :(得分:0)
代码中的错误来自第4行代码中的额外“;”。 用这个替换你的线。它应该工作。
$SQL="SELECT * FROM members WHERE userName='" . $_SESSION['userName'] ."'" or die(mysql_error());
答案 8 :(得分:0)
试试这段代码..
$ data = mysql_query(&#34; SELECT * FROM members WHERE userName =&#39;&#34;。$ _ SESSION [&#39; userName&#39;]。&#34;&#39;& #34;)或死(mysql_error());