Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL表中插入一个php字符串作为多行_Php_Mysql_Sql - Fatal编程技术网

在MySQL表中插入一个php字符串作为多行

在MySQL表中插入一个php字符串作为多行,php,mysql,sql,Php,Mysql,Sql,我有一个表,其中包含超过750行的数据,我将这些数据粘贴到一个textarea上,并作为单个字符串变量获取,然后我将数据作为一个字符串通过ajax传递,我希望将其插入到数据库中的一行中 if(isset($_POST['data'])){ $data = mysqli_real_escape_string($conexion,$_POST['data']); // get the string of data // on the next two li

我有一个表,其中包含超过750行的数据,我将这些数据粘贴到一个textarea上,并作为单个字符串变量获取,然后我将数据作为一个字符串通过ajax传递,我希望将其插入到数据库中的一行中

 if(isset($_POST['data'])){
            $data = mysqli_real_escape_string($conexion,$_POST['data']); // get the string of data
    
    // on the next two lines I try to give the format like if it were multiple rows of data to insert
            $data = str_replace("\t", "','", $data); 
            $data = str_replace("\n", "')('", $data);
// at this point $data = data1','data2','data3','data4','data5','data6')
//                       ('data1','data2','data3','data4','data5','data6')
//                       .
//                       .
//                       .
//                       .
//                       ('data1','data2','data3','data4','data5','data6
    $sql = "INSERT INTO table(col1, col2, col3, col4, col5, col5, col6) VALUES ('$data')";
    $result = mysqli_query($conexion,$sql);
有没有办法做到这一点,我可以在数据库中一次插入一个值的数据,但需要很长时间
有什么想法吗?

多行语句格式:

INSERT INTO table_name (column_list)
VALUES
    (value_list_1),
    (value_list_2),
    ...
    (value_list_n);
您正在使用换行符来确定记录数据何时应该有圆括号。按照上述格式,用逗号分隔

$data = str_replace("\n", "'),('", $data);
由于$data现在由许多记录组成,每个记录都在圆括号内并用逗号分隔,因此在构造SQL查询时不需要重复圆括号

$sql = "INSERT INTO table(col1, col2, col3, col4, col5, col5, col6) VALUES $data";

我首选的调试方法是打印$sql语句。然后复制它并直接在数据库上运行,以查看它抛出了哪些错误。

这在什么方面不起作用?请提供示例输入数据并解释代码是如何工作的。它没有做任何事情,甚至没有显示错误消息,我猜是没有将字符串作为正确的文本格式或类似的东西。在值集之间需要逗号吗?但是你已经有了一张表了!?!感谢Joe Ward,您的调试方法建议是解决此问题的关键