简体   繁体   English

MySQL / PHP-如何从表单将数组值添加到数据库中

[英]Mysql/PHP - How to add the array values into a database from a form

Can anyone see what I am doing wrong? 谁能看到我在做什么错? I am trying to add multiple values from an array into a sql table using the code below: 我正在尝试使用以下代码将数组中的多个值添加到sql表中:

foreach($_POST['serialNumber'] as $i => $serialNumber) 
        { 
        // Get values from form.
            $request_id = mysql_real_escape_string($req_id);
            $serialNumber = mysql_real_escape_string($_POST['serialNumber'][$i]);
            $machineType = mysql_real_escape_string($_POST['machineType'][$i]);
            $machineModel = mysql_real_escape_string($_POST['machineModel'][$i]);

        // Add to database
        $sql = "INSERT INTO serialnumbers(
                request_id, serial_type, serial_model, serial_number
                ) VALUES (
                '".$request_id."','".$machineType."','".$machineModel."','".$serialNumber."'
                )";
        }

For whatever reason, only the last values is being stored in the table. 出于任何原因,表中仅存储了最后一个值。 What am I missing here? 我在这里想念什么?

With the usual caveats about the deprecation of this method (mysql_), something like this should work (I might have mucked up the syntax a tiny bit) 对于不赞成使用此方法的常见警告(mysql_),类似这样的方法应该起作用(我可能对语法进行了一点修改)

$values = array;

foreach($_POST['serialNumber'] as $i => $serialNumber) 
    { 
    // Get values from form.
        $request_id = mysql_real_escape_string($req_id);
        $serialNumber = mysql_real_escape_string($_POST['serialNumber'][$i]);
        $machineType = mysql_real_escape_string($_POST['machineType'][$i]);
        $machineModel = mysql_real_escape_string($_POST['machineModel'][$i]);

    // Add to database
    $values[] = "(
            '".$request_id."','".$machineType."','".$machineModel."','".$serialNumber."'
            )";
    }

$sql = "INSERT INTO serialnumbers(
            request_id, serial_type, serial_model, serial_number
            ) VALUES ".implode($values,',').";"; 

As shown in comments, it's irresistible to propose you to test this, for prepared statements of PDO, as you loop: 如注释中所示,在您循环执行时,建议您针对准备好的PDO语句进行测试:

//
// PDO
//
try {
  $pdo = new PDO("mysql:host=localhost;dbname=MyDatabase", $user, $pass);
} catch (PDOException $e) {
    echo $e->getMessage();
  exit;
}
//
$sql = "INSERT INTO serialnumbers (
    request_id, serial_type, serial_model, serial_number
  ) VALUES (
    :request_id, :serial_type, :serial_model, :serial_number
)";
//
$stmt = $pdo->prepare($sql);

$n = count($_POST['serialNumber']);

for($i = 0; $i < $n; $i++)
{ 
  // Get values from form.
  $stmt->execute(array(
    ":request_id" => $req_id,
    ":serial_type" => $_POST['machineType'][$i],
    ":serial_model" => $_POST['machineModel'][$i],
    ":serial_number" => $_POST['serialNumber'][$i]
  ));
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何从MySQL数据库在PHP中的多维数组中添加数组? - How to add array in multidimensional array in PHP from mysql database? 如何从mysql数据库查询中不匹配的php数组中获取值 - How to get the values from php array not matching in mysql database query 从PHP数组更新mysql数据库中的值 - Updating values in a mysql database from a PHP array PHP将表单数组放入MySQL数据库 - PHP form array into MySQL Database 从 Mysql 数据库中获取数组并以数组形式从用户那里获取数据,如何将数据数组插入到获取的数组中 Php - Getting Array From Mysql database and get data from user in form of array ,how insert data array into fetched Array Php PHP mysql以“动态”形式将关联数组插入数据库 - PHP mysql insert associative array into database from a “dynamic” form PHP 如何将来自不同输入类型的值以出现顺序的形式写入 mysql 数据库 - PHP How to write values from different input types in a form in the appearing order to a mysql database 您如何比较AngularJS表单数据和MySQL数据库(PHP)中的值? - How do you compare values from AngularJS form data and MySQL database (PHP)? 如何使用PHP将我从FORM动态添加的行添加到mySQL数据库 - How to add to mySQL database my dynamically added rows from my FORM using PHP 如何将值从PHP表单保存到数组 - How to save values to array from php form
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM