簡體   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