2013-01-20 187 views
-1

我有一個PHP的問題(我很缺乏經驗),我得到下面的錯誤。任何人都可以幫我找到下面的錯誤的原因。PHP腳本語法錯誤

解析錯誤:語法錯誤,意想不到 ''(T_ENCAPSED_AND_WHITESPACE),期望在/home/jsnow/projects/one/htdocs/edit-exec.php標識符(T_STRING)或可變(T_VARIABLE)或數字(T_NUM_STRING)上線30

我的代碼:

$dbconn = mysql_select_db(APP_DB); 
if(!$dbconn) 
{ 
    die("ERROR SELECTING DB"); 
} 

$query = "SELECT * FROM users WHERE users_id='$_SESSION['SESS_USER_ID']'"; 
$result = @mysql_query($query); 

if($result) { 
    header("location: success-register.php"); 
    exit(); 
}else { 
    die("Query failed"); 
} 

我不知道,如果它的東西很明顯,但我不能看到它。

任何幫助將非常感激。

+0

此外,U應使用爲更好的性能和更好的安全性準備好語句 – Tearsdontfalls

回答

2

上面的代碼寫得不是很好。

你可能更喜歡使用類似PDO而不是下面的東西。

但是,這個問題最有可能與'查詢內'。

請嘗試以下操作。

$dbconn = mysql_select_db(APP_DB); 
if(!$dbconn) { 
    die("ERROR SELECTING DB"); 
} 

$query = "SELECT * FROM users WHERE users_id='".$_SESSION['SESS_USER_ID']."'"; 
$result = @mysql_query($query); 

if($result) { 
    header("location: success-register.php"); 
    exit(); 
}else { 
    die("Problem registering"); 
}  

這將修復代碼,但我會建議使用類似下面的代替(之後會添加PARAMS和satanize確保從SQL注入防護):

$dbh = new PDO("database details"); 
$sth = $dbh->prepare('SELECT * FROM users WHERE users_id=:users_id'); 
$sth->bindParam(':users_id', $_SESSION['SESS_USER_ID']); 
$sth->execute(); 
+0

感謝這是最有幫助的。 –

+0

這是什麼'SET name ='[「。$ full_name。」]''? –

+0

是的,從上面的問題...代碼錯誤的錯誤仍然適用(只是刪除SET部分) –

1
$query = "SELECT * FROM users WHERE name = '".$full_name."' AND users_id = '".$_SESSION['SESS_USER_ID']."'"; 
+0

這是什麼'SET name ='[「。$ full_name。」]''? –

+0

OPS沒有注意到那個! –