脚本宝典收集整理的这篇文章主要介绍了php – INSERT ON DUPLICATE KEY UPDATE语句的复杂mysql查询错误,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我的查询是:
<?PHP if($bank_name1 !== '') { $bank1 = "('$bank_id1','$owner_id','$ownertyPE1','$accounttype1','$currency1','$bank_name1','$bank_loc1','$bank_country1','$bank_accountno1','$bank_sortcode1','$bank_iban1','$bank_bicswift1','$secondary1'),"; } else { $bank1 = ''; } if($bank_name2 !== '') { $bank2 = "('$bank_id2','$ownertype2','$accounttype2','$currency2','$bank_name2','$bank_loc2','$bank_country2','$bank_accountno2','$bank_sortcode2','$bank_iban2','$bank_bicswift2',''),"; } else { $bank2 = ''; } if($bank_name3 !== '') { $bank3 = "('$bank_id3','$ownertype3','$accounttype3','$currency3','$bank_name3','$bank_loc3','$bank_country3','$bank_accountno3','$bank_sortcode3','$bank_iban3','$bank_bicswift3','$secondary3'),"; } else { $bank3 = ''; } if($bank_name4 !== '') { $bank4 = "('$bank_id4','$ownertype4','$accounttype4','$currency4','$bank_name4','$bank_loc4','$bank_country4','$bank_accountno4','$bank_sortcode4','$bank_iban4','$bank_bicswift4','')"; } else { $bank4 = ''; } $sql = "INSERT INTO bankaccounts (bankaccountid,ownerid,ownertype,accounttype,currency,bankname,location,bankcountry,accountno,sortcode,iban,bicswift,secondary) VALUES ".$bank1." ".$bank2." ".$bank3." ".$bank4." ON DUPLICATE KEY UPDATE bankaccountid = VALUES(bankaccountid),ownerid = VALUES(ownerid),ownertype = VALUES(ownertype),accounttype = VALUES(accounttype),currency = VALUES(currency),bankname = VALUES(bankname),location = VALUES(location),bankcountry = VALUES(bankcountry),accountno = VALUES(accountno),sortcode = VALUES(sortcode),iban = VALUES(iban),bicswift = VALUES(bicswift),secondary = VALUES(secondary)";
我现在已经重新阅读了这个查询一小时了……我一定是错过了一些相当愚蠢的东西……
这是原始@L_777_10@:
INSERT INTO bankaccounts (bankaccountid,secondary) VALUES ".$bank1." ".$bank2." ".$bank3." ".$bank4." ON DUPLICATE KEY UPDATE bankaccountid = VALUES(bankaccountid),secondary = VALUES(secondary)
只要查询的UPDATE部分为真,一切都可以.但是当我尝试INSERT时,我得到了MysqL抛出的错误.
@H_419_4@
$bank_name1="b1"; $bank_name2="b2"; $bank_name3="b3"; $bank_name4="b4";
这到底
echo $sql;
这是你的字符串:
INSERT INTO bankaccounts (bankaccountid,secondary) VALUES ('','','b1',('','b2','b3','b4','') ON DUPLICATE KEY UPDATE bankaccountid = VALUES(bankaccountid),secondary = VALUES(secondary)
那是一场等待发生的爆炸. Update部分不应包含VALUES()包装器.
相反,UPDATE部分应遵循以下形式:
update col1=someval1,col2=someval2,...@H_419_4@ @H_419_4@
以上是脚本宝典为你收集整理的php – INSERT ON DUPLICATE KEY UPDATE语句的复杂mysql查询错误全部内容,希望文章能够帮你解决php – INSERT ON DUPLICATE KEY UPDATE语句的复杂mysql查询错误所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。