我正在将逗号分隔列表扩展为名为$tagArray
的变量,并尝试将这些值写入递增的表行。
下面的代码可以在我的表中创建适当数量的行,但它只会写入逗号分隔字符串的第一个字母(即,如果字符串显示为“一,二,三”,“ o“写在第一行,其余两行的列为”blog_tag“的空白值:
$tagInput = $_POST["blog_tags"];
$tagArray = explode(",",$tagInput);
$sql_2 = "INSERT INTO blog_tags (blog_tag, blog_id)
VALUES ";
$valuesArray = array();
foreach($tagArray as $row){
$tag = mysqli_real_escape_string($conxn, $row['blog_tag']);
$valuesArray[] = "('$tag','$lastID')";
}
$sql_2 .= implode(',', $valuesArray);
if (!mysqli_query($conxn,$sql_2)) {
die('Error: ' . mysqli_error($conxn));
}
这是意大利面拼凑在一起的各种各样的搜索,它已经接近但我无法弄清楚它在哪里抓住字符串的第一个字母。
答案 0 :(得分:0)
只需用你的foreach替换插入数组的值
foreach($tagArray as $row){
$a=mysqli_real_escape_string($row)
$sql_2 = "INSERT INTO blog_tags (blog_tag, blog_id) VALUES
('$a','$lastID') ";
}
答案 1 :(得分:0)
爆炸不会创建关联数组
$tag = mysqli_real_escape_string($conxn, $row); //instead of $row['blog_tag']