php – INSERT ON DUPLICATE KEY UPDATE语句的复杂mysql查询错误

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – INSERT ON DUPLICATE KEY UPDATE语句的复杂mysql查询错误脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_419_4@
对于我正在开发的Web应用程序,我有一个非常复杂的sql语句.哪个以前工作过.但我无法弄清楚改变了什么..

sql错误

我的查询是:

<?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@
@H_419_4@
@H_419_4@
本图文内容来网友网络收集整理提供,作为学习参考使用,版权属于原作者。

猜你在找的PHP相关文章

php中有以下五种方法来检测变量是否为空,那么这五种方法之间有什么区别呢?下面我们就来一起看看吧。1、isset功能:判断变量是否被初始化说明:它并不会判断变量是否为空,可以用来判断数组中元素是否被定义过。
字符串函数 strlen:获取字符串的长度,获取的是字符串的字节长度 字符:一个完整的符号,a,中 字节:由8位组成 一个字符最少等于一个字节:ASCII码,a,b,通常英文字符都是占用一个字节 中文在gbk或者gb2312编码里,占用两个字节 中文在utf-8里最少占用3个字节,有可能是4个字节 substr:截取字符串,以字节为单位截取 string sub...
数据的操作无外乎就是对数据的增删改查增加数据基本方式:insert into 表名 [(字段列表)] values (值列表);主键冲突:在插入数据的时候,主键值已经存在了,但是要求是必须使用该主键字段 实现目标:如果该主键不存在那么就增加记录,如果存在,就修改部分字段的值1.使用主键冲突方式语法:insert into 表名 values(值列表) on dup...
范式:Normal Format规定的一种设计方式范式特点:范式有很多,从低级到高级有六级左右,低级往高级一级比一级要求严格。关系型数据库通常设计只需要满足其中一,满足第三范式即可。满足第三范式必须先满足第二范式,第二范式又必须先满足第一范式。第一范式:1NF数据表的设计的字段中,每个字段都不能再分,每个字段都必须是最小的不可分割的单位(原子性) 讲师代课表 要知...
在字段类型之后,用于对当前字段进行一系列的约束的内容(限制内容的情况) 字段属性:null/not null,Primary key,auto_increment,unique key,comment,defaultnull表示字段的值可以为空(在进行数据插入的时候,该字段可以不给数据),not null表示不能为空,必须要给定值(不能是null)default默...
MySQL中也分为三大数据类型:数值型,字符型,时间日期型 数值型数值型分为整数型和小数型(包含小数部分的数据类型)整型mySQL中光整数型数据类型就有五种:tinyint,smallint,mediumint,int,Bigint tinyint:迷你整型,占用1个字节保存数据,能够表示256个数值 smallint:小整型,占用2个字节保存数据,能够表示6...
校对集就是数据库数据进行比较的时候所采用的比较方式。 A =======&amp;amp;gt; 01000001 =======&amp;gt; 65 a =======&amp;gt; 01100001 ========&amp;gt; 97校对集有三种比较方式 _bin:使用二进制进行比较(区分大小写) _ci:(case insensITive),大小写不敏感,不区分大小写(将某个字符转变成...
1.mytable1存储的数据是utf8字符集(在创建表的时候,指定了表的数据存储字符集为utf8)2.cmd控制台只能是gbk格式的数据:说明cmd下只能输入和显示gbk格式的数据3.set names gbk的功能 客户端与服务端进行不同编码的通信的原理 了解数据库的字符集 查看数据库支持哪些字符集?show character set; mysql支持39种字...

脚本宝典总结

以上是脚本宝典为你收集整理的php – INSERT ON DUPLICATE KEY UPDATE语句的复杂mysql查询错误全部内容,希望文章能够帮你解决php – INSERT ON DUPLICATE KEY UPDATE语句的复杂mysql查询错误所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。