2014-03-03 34 views
0

我試圖用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>'; 
} 

具有相同的結果。

+0

不要輸出一個毫無意義的固定不變的「錯誤」消息,特別是當mysql可以告訴你問題是什麼時:'echo mysql_error();'而不是。鑑於您構建插入查詢的方式,這是一個巨大的語法錯誤,也是一個巨大的SQL注入攻擊漏洞。 –

回答

1

更改此

$query = 'INSERT INTO Student VALUES ($ID, $fname, $lname, $address, $city, $state, $zip, $phone, $email, $books, $comments)'; 

$query = "INSERT INTO Student VALUES ($ID, '$fname', '$lname', '$address', '$city', '$state', $zip, $phone, '$email', '$books', '$comments')"; 

我的意思是說,如果它的字符串,然後做像 '$字符串',還可以使用

$db_selected->real_escape_string($stringval); 

,並使用

echo $db_selected->error; 

檢查你得到的錯誤。

+0

好吧,我現在看到,我的錯誤是在查詢語句本身。我會試圖找出錯誤的位置。 – Deena

+0

感謝您的提示添加'echo $ db_selected->錯誤;'這告訴我我的錯誤是在插入語句中的確切位置。我的代碼現在正在工作。 – Deena

0
$ins="insert into Student (`id`,`fname`,`lname`,`address`,`city`,`state`,`zip`,`phone`,`email`,`books`,`comments`)values 
    ('".$ID."','".$fname."','".$lname."','".$address."','".$city."','".$state."','".$zip."','".$phone."','".$email."','".$books."','".$comments."')"; 

mysql_query($ins);