[经验栈]SQL语句逻辑运算符"AND"、"&&"兼容性
最近打算把博客转移到typecho平台,选了一个风格个人比较喜欢的主题,即Akina for Typecho 主题模板,在这里先感谢题主的开源分享,但是在使用过程中一开始就出现“500 Database Query Error”问题。

在typecho的index.php文件最开始位置加入以下代码。
define('TYPECHO_DEBUG',true);
再次打开网页,查看网页源代码后发现如下错误提示:
SQLSTATE[HY000]: General error: 1 near "&": syntax error
Typecho_Db_Query_Exception: SQLSTATE[HY000]: General error: 1 near "&": syntax error in /www/users/root/WEB/var/Typecho/Db/Adapter/Pdo.php:105
Stack trace:
#0 /www/users/root/WEB/var/Typecho/Db.php(354): Typecho_Db_Adapter_Pdo->query('SELECT typecho_...', Object(PDO), 1, 'SELECT')
#1 /www/users/root/WEB/var/Typecho/Db.php(384): Typecho_Db->query(Object(Typecho_Db_Query), 1)
#2 /www/users/root/WEB/usr/themes/Akina/index.php(39): Typecho_Db->fetchAll(Object(Typecho_Db_Query))
#3 /www/users/root/WEB/var/Widget/Archive.php(2022): require_once('/www/users/root...')
#4 /www/users/root/WEB/var/Typecho/Router.php(138): Widget_Archive->render()
#5 /www/users/root/WEB/index.php(26): Typecho_Router::dispatch()
#6 {main}
通过查看错误代码可以看到错误发生在"Akina/index.php(39): Typecho_Db->fetchAll(Object(Typecho_Db_Query))"函数,通过打印传入参数fetchAll()可以看到是一个查询语句:
["where"]=>
string(176) " WHERE ("type" = #param:0 # && "status" = #param:1# && "created" < #param:2# ) AND (typecho_contents."cid" != #param:3# ) OR ("authorId" = #param:4# && "status" = #param:5# )"
看到这里我才发现我用的是SQLITE数据库,在SQLITE数据库里是不支持"&&"做逻辑与运算符的,通过将"Akina/index.php"文件以下代码中的"&&"改为"AND"后重新加载页面,错误消失,打开页面正常。
$select2 = $this->select()->where('type = ? && status = ? && created < ?', 'post','publish',time());
if($uid) $select2->orWhere('authorId = ? && status = ?',$uid,'private');
最后我对MYSQL、SQL Server、SQLite数据库进行实验后,只有MYSQL数据库支持"&&",三者都能支持"AND",所以在写SQL语句中我们尽量采用标准的"AND"作为逻辑与运算符。
[经验栈]SQL语句逻辑运算符"AND"、"&&"兼容性的更多相关文章
- 浅谈SQL语句优化经验
(1) 选择最有效率的表名顺序(只在基于规则的seo/' target='_blank'>优化器中有效):ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后 ...
- <经验杂谈>查询表结构的SQL语句
在我们使用SQL数据库的过程中,经常会遇到查询表结构的情况,以下就是sql语句的写法: --查询非系统数据库 SELECT name FROM Master..SysDatabases 查询数据库下所 ...
- 面试题: !=!=未看12 略多 sql语句练习 非常 有用
JAVA面试总结 2015年03月25日 16:53:40 阅读数:4306 刚才看到的,先转载过来,没准以后用到…… 面试总结 2013年8月6日: 问题2:Hibernate的核心接口有哪些? ...
- 不可小觑的SQL语句
在前面学的我们通过点鼠标给数据表插数据,虽然这种方法很靠谱,但是有那么的一些缺点,就是比较麻烦和效率不高.所以现在我们的好好学SQL语句,来弥补这么的一个漏洞,能提高我们工作的效率. SQL语句能做什 ...
- 看懂SqlServer查询计划 SQL语句优化分析
转自 http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html 阅读目录 开始 SQL Server 查找记录的方法 SQL Ser ...
- Sql效能优化总结(续)- sql语句优化篇
今晚继续进行Sql效能问题的分享,今天主要是一些具体的sql优化方法和思路分享,若看过后你也有其他想法,欢迎一起探讨,好了,进入今天的主题. 针对性地对一些耗资源严重的具体应用进行优化 出现效能问题时 ...
- SQL语句编写注意问题
下面就某些SQL语句的where子句编写中需要注意的问题作详细介绍.在这些where子句中,即使某些列存在索引,但是由于编写了劣质的SQL,系统在运行该SQL语句时也不能使用该索引,而同样使用全表扫描 ...
- 浅谈c#的三个高级参数ref out 和Params C#中is与as的区别分析 “登陆”与“登录”有何区别 经典SQL语句大全(绝对的经典)
浅谈c#的三个高级参数ref out 和Params c#的三个高级参数ref out 和Params 前言:在我们学习c#基础的时候,我们会学习到c#的三个高级的参数,分别是out .ref 和 ...
- MyBatis源码分析-SQL语句执行的完整流程
MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Map使用简 ...
随机推荐
- 《Tomcat和JVM的性能调优你真的学会了吗?》总结篇
Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创 ...
- Azure DevOps vsts-agent-linux 安装出错, Must not run with sudo
在linux安装 vsts-agent-linux 在vsts-agent-linux的解压目录运行./config.sh, 提示"Must not run with sudo", ...
- 2013-2014 ACM-ICPC Pacific Northwest Regional Contest D.Delta Quadrant
题意略. 思路: 由于这是一颗无根树,我们可以贪心地来删去边. 详见代码: #include<bits/stdc++.h> using namespace std; typedef lon ...
- Java IO体系综述
Java IO体系综述 一.流的概念 在Java API中,可以从其中读入一个字节序列的对象称作输入流,而可以向其中写入一个字节序列的对象称作输出流.这些字节序列的来源地和目的地可以是文件,而且通常都 ...
- 终于跑通分布式事务框架tcc-transaction的示例项目
1.背景 前段时间在看项目代码的时候,发现有些接口的流程比较长,在各个服务里面都有通过数据库事务保证数据的一致性,但是在上游的controller层并没有对一致性做保证. 网上查了下,还没找到基于Go ...
- 如何使用有道云笔记的Markdown----初级版?
我一般整理笔记用的是用有道云笔记,在这里,Markdown怎么用? 什么是Markdown?Markdown是一种轻量级的「标记语言」,通常为程序员群体所用,目前它已是全球最大的技术分享网站 GitH ...
- HTML 画布(摘自菜鸟教程)
颜色.样式和阴影 属性 描述 fillStyle 设置或返回用于填充绘画的颜色.渐变或模式. strokeStyle 设置或返回用于笔触的颜色.渐变或模式. shadowColor 设置或返回用于阴影 ...
- CodeForces 931E Game with String
Game with String 题意:有一个字符串,可以选择从第K位开始,将[K,len(s)-1]的字符都移到前面去,现在给你一个首字母,你可以再选择一位进行观察,然后猜测这个K的值是多少, 现在 ...
- codeforces 456 D. A Lot of Games(字典数+博弈+思维+树形dp)
题目链接:http://codeforces.com/contest/456/problem/D 题意:给n个字符串.进行k次游戏.每局开始,字符串为空串,然后两人轮流在末尾追加字符,保证新的字符串为 ...
- poj 1177 Picture(线段树周长并)
题目链接:http://poj.org/problem?id=1177 题意:给你n个矩形问你重叠后外边缘总共多长. 周长并与面积并很像只不过是处理的时候是 增加的周长=abs(上一次的线段的长度 ...