PDO链式操作——针对关键字出现问题的解决方案
例如:
1、执行一条SQL语句:查询user表中的所有数据,并通过name字段进行降序,通过age进行升序
2、
案例1:
正确的执行语句为:SELECT * FROM user ORDER BY name DESC, age ASC
使用一个函数对‘字段的升降序’进行操作——order()
执行结果:ORDER BY name desc, ORDER BY age asc
总结 :关键词‘ ORDER BY ’出现了两次
代码如下:
运行结果:
可见:我们的关键词出现了两次,SQL语句也是错误的
解决方案:分成两个方法进行编辑+拼接
案例2:
使用两个函数对‘字段的升降序’进行操作——order()、ordBy()
执行结果:ORDER BY name DESC, age ASC
总结 :关键词‘ ORDER BY ’出现了一次
代码如下:
结果:
可见:我们的关键字就只有一个啦,最终的SQL语句也就正确了(*^▽^*)
案例3:
关键字被执行了两次——sqlOrder()、ordBy()、select()
执行结果: ORDER BY ORDER BY end_time DESC
总结 : 关键词‘ ORDER BY ’连续出现两次
原因 : 关键词ORDER BY是在sqlOrder()中添加的,所以select之前,其他SQL语句也使用了sqlOrder(),使用之后,并没有清空属性值,
那么就会导致第二次使用sqlOrder()前,已经有ORDER BY关键词了,后面再次使用,就会发生关键词叠加情况。
解决方案:每次使用select()方法后,将相关的关键词属性变回初始值就好啦
例如:
以上
END
PDO链式操作——针对关键字出现问题的解决方案的更多相关文章
- PHP设计模式:类自动载入、PSR-0规范、链式操作、11种面向对象设计模式实现和使用、OOP的基本原则和自动加载配置
一.类自动载入 SPL函数 (standard php librarys) 类自动载入,尽管 __autoload() 函数也能自动加载类和接口,但更建议使用 spl_autoload_registe ...
- ThinkPHP 数据库操作(三) : 查询方法、查询语法、链式操作
查询方法 条件查询方法 where 方法 可以使用 where 方法进行 AND 条件查询: Db::table('think_user') ->where('name','like','%th ...
- PHP PDO_MYSQL 链式操作 非链式操作类
<?php /* vim: set expandtab tabstop=4 shiftwidth=4: */ // +-------------------------------------- ...
- 用php实现一个简单的链式操作
最近在读<php核心技术与最佳实践>这本书,书中第一章提到用__call()方法可以实现一个简单的字符串链式操作,比如,下面这个过滤字符串然后再求长度的操作,一般要这么写: strlen( ...
- PHP中的__toString方法(实现JS里的链式操作)
_toString方法是在打印对象时自动调用的魔术方法,如果不声明会报以下错 Catchable fatal error: Object of class String could not be co ...
- jQuery链式操作[转]
用过jQuery的朋友都知道他强大的链式操作,方便,简洁,易于理解,如下 $("has_children").click(function(){ $(this).addClass( ...
- PHP链式操作输出excel(csv)
工作中经常会遇到产品运营让导出一些简单的比较规范的数据,这时候要是有一个简单的方法可以用就简单多了.下面是我的一个输出简单的excel(csv)的方法类,用到了链式操作.说到链式操作,在jquery中 ...
- php类自动装载、链式操作、魔术方法
1.自动装载实例 目录下有3个文件:index.php load.php tests文件夹 tests文件夹里有 test1.php <?php namespace Tests; class T ...
- PHP 设计模式 笔记与总结(4)PHP 链式操作的实现
PHP 链式操作的实现 $db->where()->limit()->order(); 在 Common 下创建 Database.php. 链式操作最核心的地方在于:在方法的最后 ...
随机推荐
- Django 想要单独执行文件
Django 单独文件执行 文件 我是在项目根目录文件创建的. 配置文件: #!/usr/bin/env python import os import sys if __name__ == & ...
- 使用 maven 打包 src/test/java下的文件,并用 java jar 跑打包出来的jar
https://blog.csdn.net/nba_2011/article/details/71296745
- ubuntu下用apt-get安装lamp缺少mcrypt , curl
用apt-get安装的LAMP环境,但安装magento报没有mcrypt和curl, 解决方法如下: curl安装: sudo apt-get install curl libcurl3 lib ...
- 将tomcat的protocol改为APR模式,以提高性能
以下是我修改的内容,以及对tomcat可以修改的参数 scm APR模式启动步骤: 1:将附件中的压缩包,在/usr/local 下解压 2:修改../bin/catalina.sh ,在其 ...
- centos7-网络与防火墙常用命令
1.网络配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO="static" IPADDR=192.168.163 ...
- ubuntu ifconfig 不显示IP地址
本文转载:https://blog.csdn.net/cmh477660693/article/details/52760236 ubuntu终端下命令ifconfig的问题解决 问题一. ifcon ...
- 使用media query 来实现响应式设计
你的网页在手机上显示效果可以在电脑上一样好看.完成这个任务的奥秘被称为响应式设计,媒体查询(media query)是实现网页响应的关键. 在电脑上一个例子: <div class=" ...
- Redis Intro - Dict
https://segmentfault.com/a/1190000004850844
- 带你认识spark安装包的目录结构
福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 Java全栈大联盟 ...
- DEDE文章列表加上序号效果
在文章列表上面加上序号列表的形式,使得文章列表表现得没那么单调,更加丰富一点. {dede:arclist orderby=pubdate type='commend.' titlelen='26' ...