douyong1850 2014-05-03 05:00
浏览 73
已采纳

将PHP数组中的值插入到mySQL行中

I'm exploding a comma separated list into a variable named $tagArray and trying to write those values into incrementing rows of a table.

The code below works in so much as it creates the appropriate number of rows in my table but it only writes the first letter of the comma separating string (ie. if the string reads as "one, two, three", "o" is written in the first row and the remaining two rows have a blank value for column "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));
}

This is spaghetti pieced together from various searches here and it's getting close but I can't figure out where it's grabbing just that first letter of the string.

  • 写回答

2条回答 默认 最新

  • dongyou5271 2014-05-03 05:18
    关注

    Explode doesn't create associative arrays

    $tag = mysqli_real_escape_string($conxn, $row); //instead of $row['blog_tag']
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?