我有一種感覺,我犯了一個語法錯誤。除了語法錯誤還有其他什麼,或者忘記定義一個會導致它的變量?PDO/PHP未定義變量
注意:我現在正在收到一個錯誤,指出它期待着一個;上線包含if ($query->execute(array($user_name))) {
if (isset($_GET['username'])){
$user_name = $_GET['user_name'];
$dbh = connectDb();
$query = $dbh->prepare("SELECT * FROM users WHERE user_name = ?");
if ($query->execute(array($user_name))) {
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
$email = $row['user_email'];
$admin = $row['user_access_level'];
$dbusername = $row['user_name'];
}
}
if ($user_name != $dbusername) {
echo "There has been a fatal error. Please try again.";
}
} else echo "you need to specify a username!";
?>
<center><h2><?php echo $dbusername; ?>'s Profile</h2><br /></center>
<table width="350" border="3" align="center" cellpadding="0" cellspacing="1" bgcolor="#000000">
<tr><td>Username:</td><td><?php echo $user_name; ?></td></tr>
<tr><td>User Level:</td><td><?php echo $userlvl; ?></td></tr>
<tr><td>Email:</td><td><?php echo $email; ?></td></tr>
</table>
只是一個側面說明,除非你的'query'在執行查詢之前,數據庫代碼中的方法會清除字符串,您的網站很容易受到SQL注入的影響。 –
'$ dbh-> query(「SELECT * FROM users WHERE user_name = $ user_name」,PDO :: FETCH_ASSOC)'給你一個PDOStatement的實例,而不是一個數組。見http://php.net/manual/en/pdo.query.php – Tekay37