如何在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,请花精力学习 PDO
或 mysqli
数据库扩展和预处理语句。 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 语句以使用数组中的多行填充表