gpt4 book ai didi

java - PHP:将分隔的逗号字符串值与多个数组值插入到 MySql 中

转载 作者:行者123 更新时间:2023-11-29 07:16:27 26 4
gpt4 key购买 nike

这是我的目标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, ',');

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

当对如何构造数组有疑问时,请使用 print_rvar_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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com