繁体   English   中英

在 MySQL 表上插入 php 字符串作为多行

[英]Insert a php string as multiple rows on MySQL table

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

 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 语句。 然后复制它并直接针对您的数据库运行它以查看它引发的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM