首页
归档
友情链接
留言
更多
关于
动态
Search
1
[分享栈]centos7安装gcc10.2.0
7,077 阅读
2
[技术栈]CRC校验原理及C#代码实现CRC16、CRC32计算FCS校验码
6,701 阅读
3
[技术栈]C#利用Luhn算法(模10算法)对IMEI校验
6,314 阅读
4
[分享栈]esxi6.7虚拟机安装omv(openmediavault)教程
5,765 阅读
5
[分享栈]centos7安装python3.8.5
4,830 阅读
分享栈
技术栈
经验栈
登录
Search
标签搜索
C#
centos
winform
仪器
IPV4
IPV6
测速
crc
crc16
crc32
fcs
luhn
模10
算法
sql
gcc
python
紫光展锐
omv
openmediavault
武小栈
累计撰写
21
篇文章
累计收到
37
条评论
首页
栏目
分享栈
技术栈
经验栈
页面
归档
友情链接
留言
关于
动态
搜索到
1
篇与
的结果
2019-09-07
[经验栈]SQL语句逻辑运算符"AND"、"&&"兼容性
最近打算把博客转移到typecho平台,选了一个风格个人比较喜欢的主题,即Akina for Typecho 主题模板,在这里先感谢题主的开源分享,但是在使用过程中一开始就出现“500 Database Query Error”问题。 在typecho的index.php文件最开始位置加入以下代码。 `define('__TYPECHO_DEBUG__',true);` 再次打开网页,查看网页源代码后发现如下错误提示: <pre><code><h1>SQLSTATE[HY000]: General error: 1 near "&": syntax error</h1>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}</code></pre>通过查看错误代码可以看到错误发生在"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"作为逻辑与运算符。
2019年09月07日
3,487 阅读
6 评论
1 点赞