簡體   English   中英

MYSQL PHP准備語句

[英]MYSQL PHP Prepared Statements

我了解預備語句的工作原理,需要插入200萬行,因此在這種情況下,使用預備語句對我來說是最佳選擇。 我的問題是我在row2和row3上有一個復合唯一鍵,因此我可以在准備好的語句中使用ON DUPLICATE KEY UPDATE,但是如果我希望使用條件並且僅在lastupdated DATE在比較日期之前進行更新,該怎么辦? 沒有准備好的語句,我只能在ON DUPLICATE KEY UPDATE中使用一個簡單的IF,但是由於變量已綁定並且將在創建准備好的語句后在循環內設置,因此我似乎無法使用准備好的語句來實現它。

$link = new mysqli(db_host,db_user,db_pass,db_db);
if($link->connect_errno){
echo "Failed to connect to MySQL.";
}

if(!($stmt = $link->prepare("INSERT INTO table(`id`,`lastupdated`,`col1`,`col2`,`col3`,`col4`,`col5`,`col6`,`col7`,`col8`,`col9`) VALUES (?,?,?,?,?,?,?,?,?,?,?)"))){
echo "Prepare failed: (" . $link->errno . ") " . $link->error;
}

我相信在這種情況下可以使用values()函數,因為它將返回查詢執行時通過占位符傳遞的實際值。

或者您可以將相同的值綁定兩次,第一次綁定到VALUES部分,第二次綁定到UPDATE。

暫無
暫無

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

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