如何在php中从数据库中的数组中添加多行

Posted

技术标签:

【中文标题】如何在php中从数据库中的数组中添加多行【英文标题】:How to add multiple row from arrays in database in php 【发布时间】:2017-08-30 22:28:54 【问题描述】:

我有四个数组 $V1、$V2、$V3、$V4,为此我执行了以下代码,但未插入数据:

$max_count = max(array(count($_POST['kw_coukw']), count($_POST['combin_kws']), count($_POST['combined_kws']), count($_POST['combine_kws_city'])));

for($cat1 = 0; $cat1 < $max_count; $cat1++) 

    if($cat1 <= count($_POST['kw_coukw']))
        $V1 = $_POST['kw_coukw'][$cat1];
    else 
        $V1 = 0; 
    

    if($cat1 <= count($_POST['combin_kws']))
        $V2 = $_POST['combin_kws'][$cat1];
    else 
        $V2 = 0; 
    

    if($cat1 <= count($_POST['combined_kws']))
        $V3 = $_POST['combined_kws'][$cat1];
    else 
        $V3 = 0; 
    

    if($cat1 <= count($_POST['combine_kws_city']))
        $V4 = $_POST['combine_kws_city'][$cat1];
    else 
        $V4 = 0; 
    

    $qry = "INSERT INTO seo_sentence_rl_pg_create_kw (seo_sent_pg_cre_id,kw_1_id,kw_124_id,kw_1234_id,kw_1234_city_id,customized_keyword,customized_title,description) VALUES ('".$_POST['pagenm']."','".$V1."','".$V2."','".$V3."','".$V4."','".$_POST['cuskeyword']."','".$_POST['custitle']."','".$_POST['description']."')";


【问题讨论】:

这可能是因为您实际上并没有将您构建的查询发送到服务器执行!您使用的是什么数据库扩展? mysqli_PDO 包含 SQL 查询的字符串不会得到神奇的处理 mysql_query($qry) 这也不行 每次在新代码中使用the mysql_ 数据库扩展this happens 时,它都已被弃用,并且已经存在多年,并且在 php7 中永远消失了。如果您只是学习 PHP,请花精力学习 PDOmysqli 数据库扩展和预处理语句。 Start here 【参考方案1】:

您好,如果您想插入批量数据,请使用以下代码使用 PDO:

$sql_insert = "INSERT INTO seo_sentence_rl_pg_create_kw (seo_sent_pg_cre_id,kw_1_id,kw_124_id,kw_1234_id,kw_1234_city_id,customized_keyword,customized_title,description) VALUES (:seo_sent_pg_cre_id, :kw_1_id, :kw_124_id, :kw_1234_id, :kw_1234_city_id, :customized_keyword, :customized_title, :description)";


            //Prepare our statement using the SQL query.
            $statement = $pdo->prepare($sql_insert);


            //Bind our values to our parameters 

            for($cat1 = 0; $cat1 < $max_count; $cat1++) 

            if($cat1 < count($_POST['kw_coukw']))
                $V1 = $_POST['kw_coukw'][$cat1];

                else $V1 = 0; 

                if($cat1 < count($_POST['combin_kws']))
                $V2 = $_POST['combin_kws'][$cat1];
                else $V2 = 0; 

                if($cat1 < count($_POST['combined_kws']))
                $V3 = $_POST['combined_kws'][$cat1];
                else $V3 = 0; 

                if($cat1 < count($_POST['combine_kws_city']))
                $V4 = $_POST['combine_kws_city'][$cat1];
                else $V4 = 0; 

            $statement->bindValue(':seo_sent_pg_cre_id', $_POST['pagenm']);
            $statement->bindValue(':kw_1_id', $V2);
            $statement->bindValue(':kw_124_id', $V3);
            $statement->bindValue(':kw_1234_id', $V4);
            $statement->bindValue(':kw_1234_city_id', $V5);
            $statement->bindValue(':customized_keyword', $_POST['cuskeyword']);
            $statement->bindValue(':customized_title', $_POST['custitle']);
            $statement->bindValue(':description', $_POST['description']);
            $inserted = $statement->execute();
            

【讨论】:

在mysql中不行吗? 如果你想使用批量插入,你想使用 mysqli 或 pdo。

以上是关于如何在php中从数据库中的数组中添加多行的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中从 AUTO_INCREMENT 列中为每行检索生成的 PRIMARY KEY,并在 MySQL 中插入多行?

php - 如何生成 MySQL INSERT 语句以使用数组中的多行填充表

在 MySQL PHP 中从多行结果中分离行

如何在 PHP/Eclipse 中对 foreach 循环中从数组中拉出的自定义对象进行智能感知?

如何在PHP中从当前日期添加月份[重复]

laravel 在多行中插入数据,并在一个循环中从 API 获取 [关闭]