PHP:将分隔的逗号字符串值与多个数组值一起插入MySql

这是我的目标1.我只从服务器发送一个ID,其中包含字符串分隔逗号列表,它的外观如下:ID = 1,名称=蓝色,红色,绿色,黄色2.这是我的尝试:2.1我试试使用此代码将名称更改为数组

$myString = "Red,Blue,Black"; $myArray = explode(',', $myString); 

2.2,我试着像这样插入:

 $sql="INSERT INTO `cat_interest`(`id`,`categories`) VALUES (1,'".$myArray["categories"]."'"; if (!$result = $mysqli->query($sql)){ $message = array('Message' => 'insert fail'); echo json_encode($message); }else{ $message = array('Message' => 'new record inserted'); echo json_encode($tempArray); } 

这是我的完整代码视图

  query($sql)){ $message= array('Message' => 'insertion failed'); echo json_encode($message); }else{ $message= array('Message' => 'new record inserted'); echo json_encode($message); } ?> 

这就是我想在下面实现的目标

ID类别
1 RED
1蓝色
1黑色

插入后

请帮助我不知道我做错了什么

虽然该SQL无效,但您永远不会关闭这些values 。 爆炸也不会构建关联的数组。

一个关于如何构建有效SQL语句的粗略示例

 $myString = "Red,Blue,Black";// incoming string comma names $myArray = explode(',', $myString); print_r($myArray); $sql = "INSERT INTO `cat_interest`(`id`,`categories`) VALUES"; foreach($myArray as $value){ $sql .= " (1, '{$value}'),"; } $sql = rtrim($sql, ','); 

演示: https : //eval.in/587840

如果对构造中的数组如何使用print_rvar_dump疑问。 遇到mysqli中的查询问题时,请使用错误报告, http://php.net/manual/en/mysqli.error.php 。

同样在您当前的使用情况下,您不会接受SQL注入,但如果$myString来自用户输入,或者您的数据库可能来自。 您应该研究使用参数化查询; http://php.net/manual/en/mysqli.quickstart.prepared-statements.php