标签: zend-db-table

如何在Zend Framework中逃避复杂的SQL?

我有以下sql(简化真正的问题):

SELECT *
FROM t
WHERE myname LIKE '%{$input}%';
Run Code Online (Sandbox Code Playgroud)

如何逃避$输入?
我不能使用quoteInto(除非我错过了什么).

$sql=$DB->quoteInto("SELECT *
                     FROM t
                     WHERE myname LIKE '%?%'",$input);
Run Code Online (Sandbox Code Playgroud)

会给我的

SELECT *
FROM t
WHERE myname LIKE '%'my input'%';
Run Code Online (Sandbox Code Playgroud)

$sql=$DB->quoteInto("SELECT *
                     FROM t
                     WHERE myname LIKE ?",'%'.$input.'%');
Run Code Online (Sandbox Code Playgroud)

会给我一些信息:

SELECT *
FROM t
WHERE myname LIKE '\%my input\%';
Run Code Online (Sandbox Code Playgroud)

php zend-framework zend-db-table

11
推荐指数
1
解决办法
1万
查看次数

如何在Zend Table Select中添加复杂的where子句?

我在网上搜索过,找不到能给我展示一个好例子的东西.我的问题基本上是这样的:

我该如何转换:

SELECT*FROM表WHERE((a = 1 AND b = 2)OR(c = 3 OR c = 4))AND d = 5;

要Zend语法类似于:

$ this - > select() - > from($ this - > _ schema.'.'.$ this - > _ name) - > where('a =?','1');

那怎么办呢?

非常感谢提前.

zend-framework zend-db-table zend-db

11
推荐指数
1
解决办法
1万
查看次数

Zend DB选择常量 - 表中不存在的列

我正在尝试使用Zend DB select来执行此查询,但我无法这样做

这是sql查询

select shopping_id,shopping_details,"friend" as type
from shopping

请注意我如何指定"朋友"作为类型,而朋友不是购物表中的列.

现在我如何在Zend中做到这一点.我试过这个但它给了我一个错误说"sh.friend Column不存在"

$select->from(array('sh'=>'shopping'),array('shopping_id','shopping_details','"friend" as type');

任何帮助将不胜感激

zend-framework zend-db-table zend-db zend-db-select

11
推荐指数
1
解决办法
4746
查看次数

Zend Framework:与数据库交互的正确方法?

我是Zend Framework和MVC的新手,我对Zend_DB和与数据库交互的正确方法感到有些困惑.

我正在使用PDO MySQL适配器并创建了一些类来扩展抽象类:

class Users extends Zend_Db_Table_Abstract {
    protected $_name = 'users';
    protected $_primary = 'user_id';
    protected $_rowClass = 'User';

    public function getUserbyID($id) { /* code */ }
    // More code here
}
class User extends Zend_Db_Table_Row_Abstract {
    // Code here
}
class Widgets extends Zend_Db_Table_Abstract {
    protected $_name = 'widgets';
    protected $_rowClass = 'Widget';

    public function getWidgetsfromUser($userid) { /* code */ }
    // More code here
}
class User extends Zend_Db_Table_Row_Abstract {
    public function doSomethingWithWidget() { /* code …
Run Code Online (Sandbox Code Playgroud)

php mysql database zend-framework zend-db-table

10
推荐指数
2
解决办法
8451
查看次数

如何使用Zend_Db_Table选择列的MAX?

使用Zend_Db_Table从表中选择列的最大值的最简单最简单的方法是什么?基本上,我只想在Zend中运行此查询:

SELECT MAX(id) AS maxID FROM myTable;
Run Code Online (Sandbox Code Playgroud)

php mysql zend-framework zend-db-table

10
推荐指数
1
解决办法
2万
查看次数

使用没有MVC的Zend Framework Db表

我试图使用Zend框架而不使用MVC结构,特别是Db_Table类.

我创建了几个代表我的数据库表的类,即

class DBTables_Templates extends Zend_Db_Table_Abstract  
{  
    protected $_name = "templates";  
}  
Run Code Online (Sandbox Code Playgroud)

当我尝试实例化这个类(它被包括在内)时,我收到以下错误:

致命错误:未捕获异常'Zend_Db_Table_Exception',消息'找不到DBTables_Templates的适配器'

有谁知道我如何为Db_Table要使用的类创建和包含数据库适配器?

任何指针都非常感谢!我使用的是最新版本的ZF.

zend-framework zend-db-table zend-db

9
推荐指数
1
解决办法
4048
查看次数

在Magento之后学习Zend框架:模型

我和Magento一起工作了一年,并且学到了很多东西.现在我想学习Zend,我坚持使用模型.

我已经习惯了有实体和实体的集合中Magento的,并且很可能我会想使用Zend_Db_Table,Zend_Db_Table_Row和/或Zend_Db_Table_Rowset.我感到困惑的是每个班级的角色.

我知道我可以扩展每个类,我知道在我的Product_Table类(扩展Zend_Db_Table_Abstract)中,可以使用私有方法告诉Zend用于行和行集的类,但是我对它感觉不舒服.

在Magento中使用此代码:

例1

// I understand that maybe I'll use the `new` keyword instead
// Mage::getModel() is only for exemplification
$product = Mage::getModel('catalog/product');
$product->setName('product name');
$product->setPrice(20);
$product->save();

if($id = $product->getId()){
    echo 'Product saved with id' . $id;
}
else{
    echo 'Error saving product';
}
Run Code Online (Sandbox Code Playgroud)

例2

$collection = Mage::getModel('catalog/product')->getCollection();
// this is the limit, I'm ok with other method's name
$collection->setPageSize(10);
$collection->load()

foreach($collection as $product){
    echo $product->getName() . ' …
Run Code Online (Sandbox Code Playgroud)

php zend-framework magento zend-db-table zend-db

9
推荐指数
1
解决办法
2815
查看次数

翻译查询以使用Zend_Db_Select

我在翻译此查询以使用ZF时遇到一些问题Zend_Db_Select:

SELECT b.id, b.title, b.description 
FROM memberships AS m
JOIN blogs AS b ON b.id = m.blog_id 
WHERE m.user_id = ? 
ORDER BY m.created
LIMIT 0, 30
Run Code Online (Sandbox Code Playgroud)

(此查询有效并返回结果)

Membershipsblogs和之间的链接表users.这是一件简单的| id | blog_id | user_id |事情.

这是我到目前为止所拥有的:

// $table = Zend_Db_Table instance, $id = a user id
$select = $table->select()
->from(array('m' => 'memberships'), array('b.id', 'b.title', 'b.description'))
->join(array('b' => 'blogs'), 'b.id = m.blog_id')
->where('m.user_id = ?', (int) $id)
->order('m.created DESC')
->limit(0, 30);
Run Code Online (Sandbox Code Playgroud)

这是我得到的(奇怪的(对我而言)错误: …

zend-framework zend-db-table zend-db-select

7
推荐指数
2
解决办法
4100
查看次数

zend-framework输出Zend_Db_Table的select()语句生成的查询

我想输出由Zend_Db_Table的select()语句生成的查询来测试porposes,但我不知道如何.

zend-framework zend-db-table

7
推荐指数
1
解决办法
6023
查看次数

Zend启用SQL查询日志记录

我用它来检索数据库连接atm.

    $db = Zend_Db_Table::getDefaultAdapter();
Run Code Online (Sandbox Code Playgroud)

我在我的配置中设置了这样:

resources.db.adapter = pdo_mysql
resources.db.isDefaultTableAdapter = true
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password = password
resources.db.params.dbname = db
resources.db.params.profiler.enabled = true
resources.db.params.profiler.class = Zend_Db_Profiler
Run Code Online (Sandbox Code Playgroud)

我想将所有内容输出到sql.log中.这可以应用于默认适配器吗?例如通过设置,所以我可以在生产环境中忽略它?

非常感兴趣.

我确实看过:如何使用Zend_Db启用SQL输出到日志文件?但它似乎没有涵盖我的问题.

/马库斯

zend-framework zend-db-table zend-db

7
推荐指数
2
解决办法
7779
查看次数