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_r
或var_dump
疑问。 遇到mysqli中的查询问题时,请使用错误报告, http://php.net/manual/en/mysqli.error.php 。
同样在您当前的使用情况下,您不会接受SQL注入,但如果$myString
来自用户输入,或者您的数据库可能来自。 您应该研究使用参数化查询; http://php.net/manual/en/mysqli.quickstart.prepared-statements.php 。