phalcon框架中如何实现脱离模型进行sql查询?

acc972 2013-07-24 11:26:16
比如,我有表A和表B,在models/下有A.php这个model类,而没有B的,现在在A中需要对表B进行一次SQL查询,在不创建B的model类的情况下如何拿到B的数据?
...全文
697 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2013-07-26
  • 打赏
  • 举报
回复
不太明白你的意思 间隔时间长了,跟不上你的思路
acc972 2013-07-26
  • 打赏
  • 举报
回复
引用 10 楼 xuzuning 的回复:
怎么呢?我不就是这么写的吗?
$t = $connection->fetchAll('select * from `123`', 1);
public PDOStatement executePrepared(PDOStatement $statement, array $placeholders, array $dataTypes
);
这里的$dataTypes是什么?例子里面只传了两个参数啊
acc972 2013-07-26
  • 打赏
  • 举报
回复
引用 12 楼 xuzuning 的回复:
不太明白你的意思 间隔时间长了,跟不上你的思路
版主版主快现身~~!
acc972 2013-07-26
  • 打赏
  • 举报
回复
引用 12 楼 xuzuning 的回复:
不太明白你的意思 间隔时间长了,跟不上你的思路
额。。。之前的那个问题解决了,是我没有把新问题说清楚,抱歉。是这样的e,在看文档时发现这个方法

public PDOStatement prepare (string $sqlStatement)
//Returns a PDO prepared statement to be executed with ‘executePrepared’

$statement = $db->prepare(’SELECT * FROM robots WHERE name = :name’);
$result = $connection->executePrepared($statement, array(’name’ => ’Voltron’));
public PDOStatement executePrepared (PDOStatement $statement, array $placeholders, array $dataTypes)
//Executes a prepared statement binding. This function uses integer indexes starting from zero

但是他这里的示例executePrepared只传了两个参数,但是定义里面是有三个参数的,array $dataTypes是必传单数,想知道这个$dataTypes是啥
xuzuning 2013-07-24
  • 打赏
  • 举报
回复
非也,我贴的代码只是说明 Phalcon 的类都是可以单独使用的 model类是继承于 Phalcon 数据库类的 所以他一样具有基类的方法 你用 get_class_methods 函数看一下就知道了
acc972 2013-07-24
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
$ar = $obj->fetchAll($sql); 或 $r = $obj->fetchOne($sql); 其实 Phalcon 的类都是可以单独使用的,并不一定非要在框架中使用 比如
$connection = new \Phalcon\Db\Adapter\Pdo\Mysql(array(
        "host" => "localhost",
        "username" => "root",
        "password" => "",
        "dbname" => "test"
    ));
//print_r(get_class_methods($connection)); //从支持的方法上看,只不过是在PDO上扩展了一些功能
$connection->query('set names gbk');
$t = $connection->fetchAll('select * from `123`', 1);
print_r($t);
Array ( [0] => Array ( [id] => 1 [姓名] => 张三 [型号] => A8-300 [工位] => A [数量] => 200 [时间] => 2013-06-05 08:46:00 ) [1] => Array ( [id] => 2 [姓名] => 李四 [型号] => A8-300 [工位] => B [数量] => 121 [时间] => 2013-06-05 08:48:00 ) [2] => Array ( [id] => 3 [姓名] => 王五 [型号] => A1-200 [工位] => C [数量] => 45 [时间] => 2013-06-05 07:48:00 ) [3] => Array ( [id] => 4 [姓名] => 张三 [型号] => A8-300 [工位] => A [数量] => 420 [时间] => 2013-06-05 10:46:00 ) [4] => Array ( [id] => 5 [姓名] => 王五 [型号] => A8-300 [工位] => C [数量] => 500 [时间] => 2013-06-05 13:46:00 ) ) 我这个表很怪异吧
在index里面依赖注入的时候已经建立了一次数据库的连接,假如再使用这种方法那就又多了一个连接了不是吗?有没有更好的方法?只存在一个数据库连接
xuzuning 2013-07-24
  • 打赏
  • 举报
回复
$ar = $obj->fetchAll($sql); 或 $r = $obj->fetchOne($sql); 其实 Phalcon 的类都是可以单独使用的,并不一定非要在框架中使用 比如
$connection = new \Phalcon\Db\Adapter\Pdo\Mysql(array(
        "host" => "localhost",
        "username" => "root",
        "password" => "",
        "dbname" => "test"
    ));
//print_r(get_class_methods($connection)); //从支持的方法上看,只不过是在PDO上扩展了一些功能
$connection->query('set names gbk');
$t = $connection->fetchAll('select * from `123`', 1);
print_r($t);
Array ( [0] => Array ( [id] => 1 [姓名] => 张三 [型号] => A8-300 [工位] => A [数量] => 200 [时间] => 2013-06-05 08:46:00 ) [1] => Array ( [id] => 2 [姓名] => 李四 [型号] => A8-300 [工位] => B [数量] => 121 [时间] => 2013-06-05 08:48:00 ) [2] => Array ( [id] => 3 [姓名] => 王五 [型号] => A1-200 [工位] => C [数量] => 45 [时间] => 2013-06-05 07:48:00 ) [3] => Array ( [id] => 4 [姓名] => 张三 [型号] => A8-300 [工位] => A [数量] => 420 [时间] => 2013-06-05 10:46:00 ) [4] => Array ( [id] => 5 [姓名] => 王五 [型号] => A8-300 [工位] => C [数量] => 500 [时间] => 2013-06-05 13:46:00 ) ) 我这个表很怪异吧
再看我一眼 2013-07-24
  • 打赏
  • 举报
回复
直接写原生的mysql_connect() mysql_select_db() mysql_query() 再循环结果集取数据
xuzuning 2013-07-24
  • 打赏
  • 举报
回复
怎么呢?我不就是这么写的吗?
$t = $connection->fetchAll('select * from `123`', 1);
acc972 2013-07-24
  • 打赏
  • 举报
回复
引用 8 楼 anyilaoliu 的回复:
[quote=引用 7 楼 acc972 的回复:] [quote=引用 6 楼 anyilaoliu 的回复:] [quote=引用 5 楼 acc972 的回复:] [quote=引用 4 楼 xuzuning 的回复:] 非也,我贴的代码只是说明 Phalcon 的类都是可以单独使用的 model类是继承于 Phalcon 数据库类的 所以他一样具有基类的方法 你用 get_class_methods 函数看一下就知道了
其实也是,一开始我也这样子想,没必要死磕这点。 现在特别蛋疼的是,数据库之前设计字段名有关键字”desc“,结果不使用SELECT * 。。方法查询的话没办法取得这个字段,有遇到过这种情况吗?[/quote] 遇到过.... 印象中改了字段名... 还是说用其他方法也可以?... 很久了忘记处理方式了.[/quote] 要是改字段的话不现实啊。。。要改的话众多项目也都要改代码,而且数据量太大,改起来会锁表,影响各个应用的正常运行。倒是想过干脆select *算了,查出来再过滤字段?可是总感觉这样也会影响效率。。[/quote] 不知道能否帮到你 加个撇号 貌似就不报错了[/quote] 0.0这个我知道,我是讲在phalcon中来执行$modelsManager->executeQuery($sql);的查询方法,其中$sql="SELECT id, name, `desc` FROM ....";一般我们正常写法会给关键字加反引号,但是使用phalcon他会解析sql,这样写不行。。
再看我一眼 2013-07-24
  • 打赏
  • 举报
回复
引用 7 楼 acc972 的回复:
[quote=引用 6 楼 anyilaoliu 的回复:]
[quote=引用 5 楼 acc972 的回复:]
[quote=引用 4 楼 xuzuning 的回复:]
非也,我贴的代码只是说明 Phalcon 的类都是可以单独使用的

model类是继承于 Phalcon 数据库类的
所以他一样具有基类的方法
你用 get_class_methods 函数看一下就知道了


其实也是,一开始我也这样子想,没必要死磕这点。
现在特别蛋疼的是,数据库之前设计字段名有关键字”desc“,结果不使用SELECT * 。。方法查询的话没办法取得这个字段,有遇到过这种情况吗?[/quote]

遇到过.... 印象中改了字段名... 还是说用其他方法也可以?... 很久了忘记处理方式了.[/quote]


要是改字段的话不现实啊。。。要改的话众多项目也都要改代码,而且数据量太大,改起来会锁表,影响各个应用的正常运行。倒是想过干脆select *算了,查出来再过滤字段?可是总感觉这样也会影响效率。。[/quote]





不知道能否帮到你 加个撇号 貌似就不报错了
acc972 2013-07-24
  • 打赏
  • 举报
回复
引用 6 楼 anyilaoliu 的回复:
[quote=引用 5 楼 acc972 的回复:] [quote=引用 4 楼 xuzuning 的回复:] 非也,我贴的代码只是说明 Phalcon 的类都是可以单独使用的 model类是继承于 Phalcon 数据库类的 所以他一样具有基类的方法 你用 get_class_methods 函数看一下就知道了
其实也是,一开始我也这样子想,没必要死磕这点。 现在特别蛋疼的是,数据库之前设计字段名有关键字”desc“,结果不使用SELECT * 。。方法查询的话没办法取得这个字段,有遇到过这种情况吗?[/quote] 遇到过.... 印象中改了字段名... 还是说用其他方法也可以?... 很久了忘记处理方式了.[/quote] 要是改字段的话不现实啊。。。要改的话众多项目也都要改代码,而且数据量太大,改起来会锁表,影响各个应用的正常运行。倒是想过干脆select *算了,查出来再过滤字段?可是总感觉这样也会影响效率。。
再看我一眼 2013-07-24
  • 打赏
  • 举报
回复
引用 5 楼 acc972 的回复:
[quote=引用 4 楼 xuzuning 的回复:] 非也,我贴的代码只是说明 Phalcon 的类都是可以单独使用的 model类是继承于 Phalcon 数据库类的 所以他一样具有基类的方法 你用 get_class_methods 函数看一下就知道了
其实也是,一开始我也这样子想,没必要死磕这点。 现在特别蛋疼的是,数据库之前设计字段名有关键字”desc“,结果不使用SELECT * 。。方法查询的话没办法取得这个字段,有遇到过这种情况吗?[/quote] 遇到过.... 印象中改了字段名... 还是说用其他方法也可以?... 很久了忘记处理方式了.
acc972 2013-07-24
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
非也,我贴的代码只是说明 Phalcon 的类都是可以单独使用的 model类是继承于 Phalcon 数据库类的 所以他一样具有基类的方法 你用 get_class_methods 函数看一下就知道了
其实也是,一开始我也这样子想,没必要死磕这点。 现在特别蛋疼的是,数据库之前设计字段名有关键字”desc“,结果不使用SELECT * 。。方法查询的话没办法取得这个字段,有遇到过这种情况吗?

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧