我正在 phalcon 上做一些社交事件页面,但获取提要时出现一个奇怪的问题。我在 phalcon 上进行原始查询,但是当我手动编写代码时它可以工作,但是当从 jquery 设置/获取到 php 时它不能。
手动编码(其工作):
$sql = "SELECT S.*,S.user_one as user_id,S.id,U.username,U.profile_photo
FROM users U, social S
WHERE
CASE
WHEN `user_one` = $user_id
THEN `user_two` = `user_id`
WHEN `user_two` = $user_id
THEN `user_one`= `user_id`
END
AND
(`user_one` = $user_id OR `user_two` =$user_id) Group by S.id ORDER BY S.id DESC LIMIT 20 OFFSET 0";
// Base model
$social = new Social();
// Execute the query
return new Resultset(null, $social, $social->getReadConnection()->query($sql));
但是相同的查询相同的代码,但只能从 jquery 获取(其加密)
public static function runAjaxQuery($sql)
{
// Base model
$social = new Social();
// Execute the query
return new Resultset(null, $social, $social->getReadConnection()->query($sql));
}
第二次我得到了这个错误:SELECT S.*,S.user_one as user_id,S.id,U.username,U.profile_photo
来自用户 U、社交 S
在哪里
案件
当 user_one
= 6 时
那么user_two
= user_id
当 user_two
= 6 时
那么 user_one
= user_id
结尾
和
(user_one
= 6 OR user_two
=6) Group by S.id ORDER BY S.id DESC LIMIT 20 OFFSET 20SQLSTATE[42000]:语法错误或访问冲突:1064 您SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 '"SELECT S.*,S.user_one as user_id,S.id,U.username,U.profile_photo 附近使用的正确语法
来自用户 U,' 第 1 行
谢谢大家
最佳答案
查看MySQL的错误消息:
check the manual that corresponds to your MySQL server version for the right syntax to use near '"SELECT S.*,S.user_one as user_id,S.id,U.username,U.profile_photo FROM users U,' at line 1
请注意,SELECT 之前有一个双引号;这意味着您向 MySQL 发送如下内容:
“从用户 U 中选择 S.*,S.user_one 作为 user_id,S.id,U.username,U.profile_photo...”
您需要去掉查询周围的双引号。
关于mysql - Phalcon 原始查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21658077/