我試圖用PHP將數據輸入到數據庫中。未從PHP輸入數據庫的數據
這裏是我的代碼:
<?php
$username = 'username'; //username for database
$password = 'password'; //password for database
$hostname = 'localhost'; //host
$db_name = 'db_testdrubin'; //name of database
$db_selected = mysqli_connect($hostname, $username, $password, $db_name)//specify database
or die ("unable to connect");
if(isset ($_POST['submit'])){
$ID = ($_POST['ID']);
$fname = ($_POST['fname']);
$lname = ($_POST['lname']);
$address = ($_POST['address']);
$city = ($_POST['city']);
$state = ($_POST['state']);
$zip = ($_POST['zip']);
$phone = ($_POST['phone']);
$email = ($_POST['email']);
$books = ($_POST['books[]']);
$comments = ($_POST['comments']);
}
else{
echo'<p>not submitted</p>';
}
//up until this point the code works fine
$query = 'INSERT INTO Student VALUES ($ID, $fname, $lname, $address, $city, $state, $zip, $phone, $email, $books, $comments)';
$success = $db_selected->query($query);
if($success){
$count = $db_selected->affectd_rows;
echo '<p>$count were added</p>';
}
else{
echo '<p>error</p>';
}
?>
我知道信息被正確地,因爲我已經通過打印單個變量檢查HTML表單讀取。提交表單時,我沒有收到任何錯誤消息,只是if/else語句中的「error」echo語句,並且沒有數據輸入到數據庫中。
我也試過這樣:
if (!mysql_query($db_selected, $query)){
echo '<p>error</p>';
}
具有相同的結果。
不要輸出一個毫無意義的固定不變的「錯誤」消息,特別是當mysql可以告訴你問題是什麼時:'echo mysql_error();'而不是。鑑於您構建插入查詢的方式,這是一個巨大的語法錯誤,也是一個巨大的SQL注入攻擊漏洞。 –