这是我的目标1.我仅从服务器发送一个ID,其中用逗号分隔的字符串列表如下:ID = 1,名称= blue,red,green,yellow 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); }
这是我完整的代码视图
<?php define('HOST','serveraddress'); define('USER','root'); define('PASS','pass'); define('DB','dbname'); ini_set('display_errors',1); //ini_set('display_startup_errors', 1); error_reporting(E_ALL); $mysqli = new mysqli(HOST,USER,PASS,DB); $message= array(); $myString = "Red,Blue,Black";// incoming string comma names $myArray = explode(',', $myString); $sql="INSERT INTO `cat_interest`(`id`,`categories`) VALUES (1,'".$myArray["categories"]."'"; if (!$result = $mysqli->query($sql)){ $message= array('Message' => 'insertion failed'); echo json_encode($message); }else{ $message= array('Message' => 'new record inserted'); echo json_encode($message); } ?>
这是我要在 表 ID类别下面实现的目标 1红色 1蓝色 1黑色
插入后
请帮助我不知道我做错了什么
当该SQL无效时,您永远不要关闭values。爆炸也不会建立关联的数组。
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/zh/mysqli.error.php。
print_r
var_dump
同样,在当前用法中,您不接受SQL注入,但如果$myString来自用户输入或您的数据库,则可以。您应该研究使用参数化查询。http://php.net/manual/en/mysqli.quickstart.prepared- statements.php。
$myString