您好,欢迎访问一九零五行业门户网

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

php 框架
比如,我有表a和表b,在models/下有a.php这个model类,而没有b的,现在在a中需要对表b进行一次sql查询,在不创建b的model类的情况下如何拿到b的数据?
回复讨论(解决方案) 直接写原生的mysql_connect() mysql_select_db() mysql_query() 再循环结果集取数据  
$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
)
)
我这个表很怪异吧
$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里面依赖注入的时候已经建立了一次数据库的连接,假如再使用这种方法那就又多了一个连接了不是吗?有没有更好的方法?只存在一个数据库连接
非也,我贴的代码只是说明 phalcon 的类都是可以单独使用的
model类是继承于 phalcon 数据库类的
所以他一样具有基类的方法
你用 get_class_methods 函数看一下就知道了
非也,我贴的代码只是说明 phalcon 的类都是可以单独使用的
model类是继承于 phalcon 数据库类的
所以他一样具有基类的方法
你用 get_class_methods 函数看一下就知道了
其实也是,一开始我也这样子想,没必要死磕这点。
现在特别蛋疼的是,数据库之前设计字段名有关键字”desc“,结果不使用select * 。。方法查询的话没办法取得这个字段,有遇到过这种情况吗?
非也,我贴的代码只是说明 phalcon 的类都是可以单独使用的
model类是继承于 phalcon 数据库类的
所以他一样具有基类的方法
你用 get_class_methods 函数看一下就知道了
其实也是,一开始我也这样子想,没必要死磕这点。
现在特别蛋疼的是,数据库之前设计字段名有关键字”desc“,结果不使用select * 。。方法查询的话没办法取得这个字段,有遇到过这种情况吗?
遇到过.... 印象中改了字段名... 还是说用其他方法也可以?... 很久了忘记处理方式了.
非也,我贴的代码只是说明 phalcon 的类都是可以单独使用的
model类是继承于 phalcon 数据库类的
所以他一样具有基类的方法
你用 get_class_methods 函数看一下就知道了
其实也是,一开始我也这样子想,没必要死磕这点。
现在特别蛋疼的是,数据库之前设计字段名有关键字”desc“,结果不使用select * 。。方法查询的话没办法取得这个字段,有遇到过这种情况吗?
遇到过.... 印象中改了字段名... 还是说用其他方法也可以?... 很久了忘记处理方式了.
要是改字段的话不现实啊。。。要改的话众多项目也都要改代码,而且数据量太大,改起来会锁表,影响各个应用的正常运行。倒是想过干脆select *算了,查出来再过滤字段?可是总感觉这样也会影响效率。。
非也,我贴的代码只是说明 phalcon 的类都是可以单独使用的
model类是继承于 phalcon 数据库类的
所以他一样具有基类的方法
你用 get_class_methods 函数看一下就知道了
其实也是,一开始我也这样子想,没必要死磕这点。
现在特别蛋疼的是,数据库之前设计字段名有关键字”desc“,结果不使用select * 。。方法查询的话没办法取得这个字段,有遇到过这种情况吗?
遇到过.... 印象中改了字段名... 还是说用其他方法也可以?... 很久了忘记处理方式了.
要是改字段的话不现实啊。。。要改的话众多项目也都要改代码,而且数据量太大,改起来会锁表,影响各个应用的正常运行。倒是想过干脆select *算了,查出来再过滤字段?可是总感觉这样也会影响效率。。
不知道能否帮到你 加个撇号 貌似就不报错了
非也,我贴的代码只是说明 phalcon 的类都是可以单独使用的
model类是继承于 phalcon 数据库类的
所以他一样具有基类的方法
你用 get_class_methods 函数看一下就知道了
其实也是,一开始我也这样子想,没必要死磕这点。
现在特别蛋疼的是,数据库之前设计字段名有关键字”desc“,结果不使用select * 。。方法查询的话没办法取得这个字段,有遇到过这种情况吗?
遇到过.... 印象中改了字段名... 还是说用其他方法也可以?... 很久了忘记处理方式了.
要是改字段的话不现实啊。。。要改的话众多项目也都要改代码,而且数据量太大,改起来会锁表,影响各个应用的正常运行。倒是想过干脆select *算了,查出来再过滤字段?可是总感觉这样也会影响效率。。
不知道能否帮到你 加个撇号 貌似就不报错了
0.0这个我知道,我是讲在phalcon中来执行$modelsmanager->executequery($sql);的查询方法,其中$sql=select id, name, `desc` from ....;一般我们正常写法会给关键字加反引号,但是使用phalcon他会解析sql,这样写不行。。
怎么呢?我不就是这么写的吗?
$t = $connection->fetchall('select * from `123`', 1);

怎么呢?我不就是这么写的吗?
$t = $connection->fetchall('select * from `123`', 1);

public pdostatement executeprepared(pdostatement $statement, array $placeholders, array $datatypes);
这里的$datatypes是什么?例子里面只传了两个参数啊
不太明白你的意思
间隔时间长了,跟不上你的思路
不太明白你的意思
间隔时间长了,跟不上你的思路
额。。。之前的那个问题解决了,是我没有把新问题说清楚,抱歉。是这样的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是啥
不太明白你的意思
间隔时间长了,跟不上你的思路
版主版主快现身~~!
其它类似信息

推荐信息