-1

私は PHP に問題があり (あまり経験がありません)、以下のエラーが発生します。以下のエラーの原因を見つけるのを手伝ってくれる人はいますか。

解析エラー: 構文エラー、予期しない '' (T_ENCAPSED_AND_WHITESPACE)、30 行目の /home/jsnow/projects/one/htdocs/edit-exec.php に識別子 (T_STRING) または変数 (T_VARIABLE) または数値 (T_NUM_STRING) が必要です

私のコード:

$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");  
}

明らかなものかどうかはわかりませんが、見えません。

どんな助けでも非常に感謝しています。

4

2 に答える 2

2

上記のコードはあまりよく書かれていません。

以下の代わりに PDO のようなものを使用する方がおそらく良いでしょう。

ただし、問題は $query 内の ' にある可能性が最も高いです。

以下を試してください。

$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 を追加し、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();
于 2013-01-20T15:43:49.723 に答える
1
$query = "SELECT * FROM users WHERE name = '".$full_name."' AND users_id = '".$_SESSION['SESS_USER_ID']."'";
于 2013-01-20T15:44:42.237 に答える