请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 注册成为新用户

QQ登录

只需一步,快速开始

查看: 2313|回复: 5

findSql spPager spLinker

  [复制链接]
发表于 2013-11-4 10:20:36 | 显示全部楼层 |阅读模式
SELECT COUNT() as sp_counter FROM (select user.* from user  where project in (select project.id from project where  1=1 and category='5')) sp_tmp_table_pager1
执行错误: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') as sp_counter FROM (select advertise.* from advertise where project in (select' at line 1

这个错误是由于什么引起的?
主键和外键已经设置
请教下findSql +spPager +spLinker有没有实际的例子?
小弟不才,在教程里面没有找到,也是我对这个框架没有深入

@jake @等等


发表于 2013-11-4 10:32:52 | 显示全部楼层
没有设置主键,从提示“SELECT COUNT() ”可以看出,如果是设置了主键,那么会是SELECT COUNT(主键)

手册在此:http://www.speedphp.com/thread-3798-1-1.html
 楼主| 发表于 2013-11-4 11:35:12 | 显示全部楼层
jake 发表于 2013-11-4 10:32
没有设置主键,从提示“SELECT COUNT() ”可以看出,如果是设置了主键,那么会是SELECT COUNT(主键)

手册 ...

<?php
class user extends spModel
{
  var $pk = "id"; // 每个留言唯一的标志,可以称为主键
  var $table = "user"; // 数据表的名称
  // 由spModel的变量$linker来设置表间关联
        var $linker = array(
                'project'=>array(
                        'type' => 'hasone',   // 关联类型,这里是一对一关联
                        'map' => 'base',    // 关联的标识
                        'mapkey' => 'project', // 本表与对应表关联的字段名
                        'fclass' => 'project', // 对应表的类名
                        'fkey' => 'id',    // 对应表中关联的字段名
                        'enabled' => true     // 启用关联
                )
        );
}

$sql="select user.* from advertise where user.project in (select project.id from project where ".$conditions.")";
$results=$user->spLinker()->spPager($this->spArgs('page', 1), 12)->findSql($sql);

我在user和project里面确实设置了$pk ,因此感觉困惑。

是因为我用了一句嵌套sql导致的吗?


发表于 2013-11-4 11:54:44 | 显示全部楼层
。。。既然findSql了,还要加spLinker吗? 这个不支持吧。
 楼主| 发表于 2013-11-4 12:16:06 | 显示全部楼层
jake 发表于 2013-11-4 11:54
。。。既然findSql了,还要加spLinker吗? 这个不支持吧。

.......... 我之前搜索看到你回复一个人说支持三个一起用,我就用了{:soso_e127:},多谢jake。可以结贴了。

也给以后犯这种错误的人个参考。
发表于 2013-11-4 13:38:40 | 显示全部楼层
和珅 发表于 2013-11-4 12:16
.......... 我之前搜索看到你回复一个人说支持三个一起用,我就用了,多谢jake。可以结贴了 ...

嗯,主要是SQL语句需要比较简单呃,否则是没办法做到分页关联等。但是用到了findSQL,那么SQL语句肯定不会简单的。
您需要登录后才可以回帖 登录 | 注册成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2020-5-28 22:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表