2014-03-03 4 views
0

PHP로 데이터베이스에 데이터를 입력하려고합니다. 나는 정보가 나는 각각의 변수를 인쇄하여 확인하신 후 올바르게 때문에 HTML 양식에서 읽고있는 것을 알고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>'; 
    } 

?> 

:

여기 내 코드입니다. 양식을 제출할 때 오류 메시지가 표시되지 않고 if/else 문에서 나오는 "오류"echo 문과 데이터베이스에 입력 된 데이터가 없습니다.

나는 또한이 시도 : 같은 결과

if (!mysql_query($db_selected, $query)){ 
    echo '<p>error</p>'; 
} 

. 내가 말하는 의미

+0

NEVER 출력 무의미한 고정 불변 "오류"메시지. 삽입 쿼리를 작성하는 방식을 감안할 때 대규모 문법 오류와 대규모 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; 

오류를 확인하십시오. ;`대신`에코 mysql_error를() : MySQL은 문제가 무엇인지를 알 수 있습니다, 특히

+0

OK, 이제는 내 오류가 쿼리 문 자체에 표시됩니다. 나는 어디에서 오류인지 알아 내려고 노력할 것이다. – Deena

+0

팁에 'echo $ db_selected-> error;'를 추가해 주셔서 감사합니다. 내 오류가 insert 문에서 어디에 있는지 정확히 알려줍니다. 내 코드가 지금 작동 중이다. – 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); 
관련 문제