Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

cách chèn nhiều mảng vào cơ sở dữ liệu bằng PHP

Tôi đã sửa đổi mã của bạn để làm cho nó hoạt động:

form.php

<form method="POST" action="form.php">
<input type="text" name="waw" />
<input type="submit" />
</form>

<form method="POST" action="input.php">
<?php 
$i=0;

while ($i<$_GET['waw'])
{
?>

<!-- Person #1 -->

<input type="text" name="username[]" />

<input type="text" name="phonenum[]" />

<input type="text" name="add[]" /><br />


<?php 
$i++;
}
?>
<input type="submit" />
</form>

input.php

<?php


$username="maizakath";
$password="12345";
$database="tryinsert";
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die("<b>Unable to specified database</b>");



$sql_start = 'INSERT INTO `mytable` VALUES '; 
$sql_array = array(); 
$queue_num = $_POST['waw']; 
foreach ($_POST['username'] as $row=>$name)
{
$username = $name;
$phonenum = $_POST['phonenum'][$row];
$add = $_POST['add'][$row];
$sql_array[] = '("' . $username . '", "'.$phonenum.'", "'.$add.'")'; 
if (count($sql_array) >= $queue_num) {
  $query_single=$sql_start . implode(', ', $sql_array);
  mysql_query($query_single); 
  $sql_array = array(); 
}
}

if (count($sql_array) > 0)  {
  $query = $sql_start . implode(', ', $sql_array);
  mysql_query($query)or die(mysql_error());
}

?>

Nó hoạt động tốt. Tôi vừa thử nghiệm nó trên máy cục bộ của mình.

CHỈNH SỬA (Nhận xét) :

  1. Việc sử dụng biến $ queue_num trong input.php là vô nghĩa, vì biến này chỉ có sẵn trong tập lệnh form.php (đầu vào 'wow' được đặt ở dạng khác, được gửi tới tệp form.php, không phải input.php). Vì vậy, if (count($sql_array) >= $queue_num) khối hoạt động sai;

  2. Kiểm tra cài đặt cấu hình của bạn cho kết nối cơ sở dữ liệu (như tôi đã viết trong nhận xét, bạn phải xác định hằng số với tên 'localhost' hoặc bao gồm từ localhost trong dấu ngoặc kép);

  3. Tôi đã sửa đổi biểu mẫu của bạn, vì nó có cấu trúc sai;

  4. Tôi không hiểu mục tiêu của việc tạo biểu mẫu đầu tiên trong form.php.

Bạn có thể sửa đổi mã này để phù hợp hơn với trường hợp của mình. Nhưng lần đầu tiên của tất cả hãy cố gắng sử dụng cái này.

Lưu ý. Sử dụng var_dump () để xem mảng $ _POST của bạn trong quá trình gỡ lỗi để hiểu, những biến nào có sẵn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. THAY THẾ các hàng trong bảng cơ sở dữ liệu mysql với gấu trúc DataFrame

  2. Chèn dữ liệu vào bảng MySQL bằng VB.NET

  3. Sự cố với dữ liệu truy vấn trong bảng

  4. gửi cho người dùng một tin nhắn bằng cách chuyển id của họ vào một hộp phương thức

  5. Sự khác biệt giữa SERIAL và AUTO_INCREMENT trong mysql là gì