我實現AF的評級系統,但將評級值插入數據庫不斷拋出連接錯誤:13PHP:錯誤插入數據庫
Parse error: syntax error, unexpected '$query' (T_VARIABLE) in http... on line 13`
線是$query = $bdd->prepare(...);
include('../db.class.php');
$bdd = new db();
if($_POST) {
$mediaId = $_POST['mediaId'];
$rate = $_POST['rate'];
$expire = 24*3600; // 1 day
setcookie('Rating'.$mediaId, 'rating', time() + $expire, '/'); // Place a cookie
error_reporting(E_ALL)
$query = $bdd->prepare("INSERT INTO my_db (rating) VALUES (?) WHERE id = '.$mediaId.'");
$query->bindParam("i", $rate);
$query->execute();
$result = $bdd->getOne('SELECT round(avg(rating), 2) AS average, count(rating) AS nbrRate FROM my_db WHERE id='.$mediaId.'');
$dataBack = array('avg' => $result['average'], 'nbrRate' => $result['nbrRate']);
$dataBack = json_encode($dataBack);
echo $dataBack;
$query->close();
$bdd->close();
}
的數據庫「my_db」具有列「id」(INT)和列「評級」(INT)。
我該如何解決這個錯誤?
您似乎錯過了一個「;」在error_reporting(E_ALL) –
不錯,你使用準備好的語句,但請使用它們,因爲你應該...'在哪裏id =?'然後綁定一個變量到WHERE。如果只准備好一半的語句,並且仍然讓用戶在其中輸入'$ mediaId',它將無濟於事,這真的很容易受到SQL注入的影響。 – Twinfriends
你沒有一個名爲prepare()的函數,下面的'$ bdd-> prepare(...)'用來調用函數prepare從類 –