如何在php中将变量数组单独插入数据库?
Posted
技术标签:
【中文标题】如何在php中将变量数组单独插入数据库?【英文标题】:How can I insert an array of variable into a database individually in php? 【发布时间】:2020-08-04 02:58:28 【问题描述】:如何将数组单独插入数据库,它显示错误。我想一次将它们全部插入...有时数组可能更多的是 3、5 或 10。
$roll_num = '111,222,333';
$rollnum = explode(",",$roll_num);
$sql ="INSERT INTO eyfstb(specialnum) VALUES('$rollnum[]')";
if($db->query($sql)== TRUE)
echo "true";
else
echo "false";
【问题讨论】:
我不明白你的意思 【参考方案1】:您可以将其动态插入到您的Database
,这将解决您的问题。 :D
$roll_num = '111,222,333';
$rollnum_arr = explode(",",$roll_num);
for($x = 0; $x < count($rollnum_arr); $x++)
$sql ="INSERT INTO eyfstb(specialnum) VALUES(".$rollnum_arr[$x].")";
if($db->query($sql) == TRUE)
echo "true";
else
echo "false";
【讨论】:
【参考方案2】:explode 函数将您的数组转换为多个索引变量,所以关于您的问题,它应该是:
$roll_num = '111,222,333';
$rollnum = explode(",",$roll_num);
$sql ="INSERT INTO eyfstb(specialnum) VALUES('$rollnum[0]')";
if($db->query($sql)== TRUE)
echo "true";
else
echo "false";
如果您想插入所有这些,您可以将其作为 JSON 存储在您的表中,或者创建其他列。
【讨论】:
我想一次全部插入...有时数组可能更多的是 3、5 或 10。 要解决您的问题,您需要使用loop
函数,以便您可以动态插入您的Database
。请看我上面的回答。谢谢【参考方案3】:
首先,您的 $roll_num 变量不是数组。 并且explode 函数会将您的字符串拆分为一个字符串,如下所示:https://www.php.net/manual/en/function.explode.php
为此,您可以构建您的数组,其中包含您的值,例如:
$roll_num = array('111', '222','333');
并且由于循环而插入:
for ($i = 0; $i < count($roll_num); $i++)
$sql = "INSERT INTO eyfstb(specialnum) VALUES(" . $roll_num[$i] . ")";
$db->query($sql);
$db->execute();
它应该工作:)
【讨论】:
【参考方案4】:据我了解,您想为每个数组单元插入一个新行。为此,我建议:
$roll_num = '111,222,333';
$rollnum = explode(",", $roll_num);
$sql = "INSERT INTO eyfstb(specialnum) VALUES('" . implode("'),('", $rollnum) . "')";
这将产生以下 SQL:
INSERT INTO eyfstb(specialnum) VALUES('111'),('222'),('333')
而且会比循环和插入每次迭代更有效。
【讨论】:
以上是关于如何在php中将变量数组单独插入数据库?的主要内容,如果未能解决你的问题,请参考以下文章