2016-05-29 13 views
-1

が、これはエラーを取得しているコードです:PHP/SQL - 予期しないT_ENCAPSED_AND_WHITESPACEエラー

session_start(); 
$user = $_SESSION["username"]; 

$sql = "SELECT cost FROM rooms 
     WHERE rid = $rNumber"; 
$results = mysqli_query($conn, $sql) 
or die ('Problem with query' . mysqli_error($conn)); 

$row = mysqli_fetch_array($results); 
$sql2 = "INSERT INTO bookings (rid, username, checkin, checkout, cost)  
     VALUES ($rNumber, $user, $cInDate, $cOutDate, $row['price'])"; //this line is where the error occurs 
$results2 = mysqli_query($conn, $sql2) 
or die ('Problem with query' . mysqli_error($conn)); 

私はこのエラーを取得しているようだ:

unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING 

私はについての他の記事をチェックしようとしています同じエラーと私は何かを連結するために(。)を使用する必要があることを集めましたが、何がわからないのですか?私はSQLの直前に変数をエコーし​​て、それらが存在しています。

+1

問題は$行にある[ '価格']一つの解決策は、{$行の中に置くことである[ '価格' ]}代わりに用意された文とパラメータバインドを使用する方が良い – e4c5

答えて

0

Please change that line like this.

$sql2 = "INSERT INTO bookings (rid, username, checkin, checkout, cost)
VALUES ('$rNumber', '$user', '$cInDate', '$cOutDate', '{$row['price']}')";

また、私はあなたのクエリからのMySQLの構文エラーを解決:P

+0

2次レベルのSQLインジェクション(攻撃)ではないので、そのデータがどこから来ているのかを調べることができます。 – Drew

+0

私はpreferebly PDOドライバを使用していただろう。 –

+0

すべての変数はmysql_real_escape_stringを使用してエスケープする必要があります。 –

関連する問題