Mysql kohana Freams中的原始查询是如何工作的

Mysql kohana Freams中的原始查询是如何工作的,mysql,kohana,kohana-3,kohana-orm,Mysql,Kohana,Kohana 3,Kohana Orm,我想要一个带有查询列表的包 它是更新查询,如下所示: UPDATE table SET column = XXX WHERE column = XXX AND column2 = XXX; UPDATE table SET column = XXX WHERE column = XXX AND column2 = XXX; UPDATE table SET column = XXX WHERE column = XXX AND column2 = XXX; 我在一个包中有这10

我想要一个带有查询列表的包

它是更新查询,如下所示:

UPDATE table 
SET column = XXX 
WHERE column = XXX AND column2 = XXX;

UPDATE table 
SET column = XXX 
WHERE column = XXX AND column2 = XXX;

UPDATE table 
SET column = XXX 
WHERE column = XXX AND column2 = XXX;
我在一个包中有这1000个查询。现在我想做一些查询

我试着这么做,但没有成功,因为每次我都会遇到这样的错误:

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以获取可在附近使用的正确语法

我将此查询复制到phpmyadmin,然后执行此操作。这些查询有效

我有一个带有准备好的查询的变量,我试图用不同的方式来实现它

Database::instance()->query(NULL,$sql);
DB::query(5,$sql)->execute();
DB::query(Database::UPDATE,DB::expr($sql))->execute();
DB::query(Database::UPDATE,$sql)->execute();
但它不起作用/


有人知道怎么做吗?

只需从数据库实例调用方法查询:

/** @var Database $db */
$db = Database::instance();
$db->query(Database::UPDATE, 'UPDATE table SET column = XXX WHERE column = XXX AND column2 = XXX;');
但是,如果您想在一个查询中执行多个SQL语句,则不可能开箱即用。默认情况下,Kohana使用旧的mysql API和mysql_query不支持在一次调用中进行多个查询

如果您想使用多个SQL语句,我知道3种方法:

  • 不久前,对于Kohana,我看到了mysqli支持模块,您可以尝试找到他并修改:add to it new method,它将使用mysqli::multi_query在一个查询中执行多个SQL语句
  • 或者您可以切换到使用PDO。为此,必须在数据库配置文件中进行更改,根据Kohana的文档,为模型中的列添加映射
  • 或者在“仅为此查询设置PDO连接”中创建新的PDO连接(如果不使用事务,则比变量2更容易) 此外,对于变型2和变型3,您必须设置一些PDO设置:

    按配置名称调用数据库实例的注意事项:

    Database::instance('config_name');