簡體   English   中英

插入返回不完整數據的數組(MySQL / PHP)

[英]Inserting array returning incomplete data (MySQL/PHP)

我有一個基於以下命令的插入命令:

$baseINS = "INSERT INTO table2 (Points_ID, StaticCode) VALUES ";
$arrayINS = explode(", ", $arraystring);
foreach ($arrayINS as &$array1INS) {
    $array1INS = "('" . $array1INS . "', '123456')";
}
$arrayvaluesINS = implode(', ', $arrayINS);
$insertSQL2 = $baseINS . $arrayvaluesINS;

從以下事務中查詢$insertSQL2

$insertSQL = "BEGIN";
mysql_query($insertSQL) or die (mysql_error());
$insertSQL = $insertSQL1;
mysql_query($insertSQL) or die (mysql_error());
$insertSQL = $insertSQL2;
mysql_query($insertSQL) or die (mysql_error());
$insertSQL = "COMMIT";
mysql_query($insertSQL) or die (mysql_error());

(其中$insertSQL1是另一個SQL插入到另一個表中)

表結構如下:

table2ID int(50)NOT NULL AUTO_INCREMENT,
StaticCode varchar(100)非空, Points_ID varchar(50)非空,主鍵( ID ),唯一鍵IDID ))ENGINE = InnoDB

現在,例如,假設$insertSQL2回顯為INSERT INTO table2 (Points_ID, StaticCode) VALUES ('24859', '123456'), ('24649', '123456'), ('25166', '123456')

我希望三行出現在table2中...但這是發生的情況:

  • 實際上,兩個插入命令( $insertSQL1$insertSQL2 )都可以插入數據。
  • 只是,雖然$insertSQL1將所有表單中的所有數據插入到table1中的必填字段中,但是$insertSQL2 (正在插入數組)卻沒有-它僅插入靜態代碼一次,並$insertSQL2 Points_ID為空白。

我已經通過將回顯的命令復制到PHPMySQL中來測試了INSERT語句,它確實執行了預期的操作,因此我知道我的MySQL版本可以處理它。

有什么想法嗎?

從您的代碼看起來您​​正在使用mysql擴展。 您應該使用mysqli或pdo_mysql。 我相信交易不適用於mysql。

mysqli看起來幾乎相同,但對於事務,請使用mysqli功能

/* set autocommit to off */
$mysqli->autocommit(FALSE);

/* Insert some values */
$mysqli->query($insertSQL);

/* commit transaction */
$mysqli->commit();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM