2014-02-07 48 views
-4

我想根據我的網頁瀏覽的用戶名來檢索使用PHP數據庫特定用戶的信息,用戶信息,但其示值誤差:如何檢索從數據庫

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\New folder\profileview.php on line 5

代碼

<?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
$SQL="SELECT * FROM members WHERE userName=$_SESSION['userName']"; 
or die(mysql_error()); 

試試這個

$SQL="SELECT * FROM members WHERE userName=$_SESSION['userName']" 
or die(mysql_error()); 
0

替換此聲明:

$SQL="SELECT * FROM members WHERE userName=$_SESSION['userName']"; 

有了這個:

$SQL=mysql_query("SELECT * FROM members WHERE userName='".$_SESSION['userName']."'") 
or die(mysql_error()); 
+0

現在它顯示解析錯誤:語法錯誤,意想不到的T_VARIABLE在C:\ WAMP \ WWW \第5行 – user3273856

+0

你忘了新建文件夾\ profileview.php。串聯 –

+0

謝謝@RohitKumarChoudhary 請。請參閱Janak Prajapati的回答。就是那個! – danielle

0

試試這個

$SQL=mysql_query("SELECT * FROM members WHERE userName='".$_SESSION['userName']."'"); 
    or die(mysql_error()); 
0

你有你的$ SQL調用更改爲:

$SQL="SELECT * FROM members WHERE userName=$_SESSION['userName']" or die(mysql_error()); 

一個提示: 您使用的是過時mysql_ *函數。切換到mysqliPDO

而且你不應該把變量直接放到你的查詢中,因爲這可以爲sql注入打開一扇門。

改爲使用prepared statements

0
$SQL="SELECT * FROM members WHERE `userName`='".$_SESSION['userName']."'"; 
0

您的代碼包含一些問題,我想在此強調一下。

  1. 只要你在SQL中匹配一個字符串,一定要注意它應該在引號內。
  2. 在單引號內寫入SQL,它是一種更好的方法
  3. 由於存在一些Sql注入問題,因此始終將您的參數包含在mysql_real_escape sting函數中。
  4. 使用修剪,以避免任何錯誤的機會。

現在保持所有這一點您的查詢就會像

$SQL='SELECT * FROM members WHERE userName=\''.mysql_real_escape_string(trim($_SESSION['userName'])).'\'; 

PS:請不要練習使用mysql_功能,因爲它們已被棄用。

0

代碼中的錯誤來自第4行代碼中的額外「;」。 用這個替換你的線。它應該工作。

$SQL="SELECT * FROM members WHERE userName='" . $_SESSION['userName'] ."'" or die(mysql_error());

0

試試這個代碼..

$數據=請求mysql_query( 「SELECT * FROM成員其中username =「」。$ _SESSION ['userName']。「'」)或死(mysql_error());

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>"; 
?>