小编典典

PHP:将带有多个数组值的分隔逗号字符串值插入MySql

java

这是我的目标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黑色

插入后

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


阅读 245

收藏
2020-11-30

共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/zh/mysqli.error.php

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

2020-11-30