这是我的目标 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);
}
这是我的完整代码 View
<?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 无效,但您永远不会关闭值
。 Explode 也不会构建关联的数组。
如何构建有效 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, ',');
当对如何构造数组有疑问时,请使用 print_r
或 var_dump
。当 mysqli 中的查询出现问题时,使用错误报告 http://php.net/manual/en/mysqli.error.php .
此外,在您当前的使用中,您不接受 SQL 注入(inject),但如果 $myString
来自用户输入,或者您的数据库,则可能是这样。您应该考虑使用参数化查询; http://php.net/manual/en/mysqli.quickstart.prepared-statements.php .
关于java - PHP:将分隔的逗号字符串值与多个数组值插入到 MySql 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37780041/