2012-10-17 3 views
0

동적으로 채워진 입력 텍스트 필드에서 값을 삽입하려고합니다. 더 이상의 조치를 취해야합니까? PHP를 사용하여 다중 배열 삽입

내 샘플 양식 :

<form action="" method="POST"> 
    <label>Name:</label><input type="text" name="name[]"> 
    <label>Name:</label><input type="text" name="grade[]"> 
    <input type="submit" name="submit"> 
</form> 

내 insert.php 파일 :

$grade = $_POST['grade']; 
$name = $_POST['name']; 
$count_name = count($_POST['name']); 

for($i=0;$i<$count_name ;$i++){ 
    $new_name = $name[$i]; 

    $query = "INSERT INTO test_table (name, grade)VALUES('$new_name','$grade')"; 
    $result = mysql_query($query); 

} 
+2

무엇이 문제입니까? –

+3

[더 이상 사용되지 않는 데이터베이스 API] (http://stackoverflow.com/q/12859942/19068)를 사용하고 있으며 [SQL injection attacks] (http://bobby-tables.com/)에 자신을 드러내고 있습니다. API를 사용하면 쉽게 방어 할 수 있습니다 (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php). – Quentin

+0

PDO가 @ytse_jam –

답변

0

그것을 시도 :

형태 :

<form action="insert.php" method="POST"> 
    <label>Name:</label><input type="text" name="name[]"> 
    <label>Name:</label><input type="text" name="grade[]"> 
    <input type="submit" name="submit"> 
</form> 

insert.php

$grade = $_POST['grade']; 
$name = $_POST['name']; 
$count_name = count($_POST['name']); 

for($i=0;$i<$count_name ;$i++){ 
    $_name = mysql_escape_string($name[$i]); 
    $_grade = mysql_escape_string($grade[$i]); 

    $query = "INSERT INTO test_table (name, grade) VALUES ('$_name','$_grade')"; 
    $result = mysql_query($query); 
} 
관련 문제