如何在 kohana 3.1 中调用程序
Posted
技术标签:
【中文标题】如何在 kohana 3.1 中调用程序【英文标题】:How to call procedure in kohana 3.1 【发布时间】:2012-04-27 12:11:55 【问题描述】:Kohana 是一个 php 框架。 这是文档。 如何在这个框架中调用过程。 我已经搜索过这个问题并提出了问题。 喜欢 : insert_id in Kohana 3
这是我的代码:
$conn = Database::instance();
$queryStr = "call sp_createUser('$nick_name','$email','$password','127.0.0.1')";
$query = DB::query(Database::SELECT, $queryStr);
$query->execute($conn);
但有一些例外..
Database_Exception [ 1312 ]: PROCEDURE sp_createUser can't return a result set in the given context [ call sp_createUser('1','1','1','127.0.0.1') ]
db 连接好像有问题..
我该如何解决它...寻求帮助..
【问题讨论】:
【参考方案1】:在查询之前使用$query->compile(Database::instance);
来检查您的查询字符串并找到它的错误。
还请给我们您的 PROCEDURE 正文。它看起来像 PROCEDURE 以不兼容的格式将数据返回给 Kohana。
你的$query->compile(Database::instance);
返回字符串是直接在mysql中执行的吗?
【讨论】:
调用 sp_createUser('1','1','1','127.0.0.1') ,它可以在db中成功执行。所以查询字符串没有问题。 您在 PHP 中使用什么模块来处理 MySQL? mod_mysql 还是 mod_mysqli?使用存储过程需要 mod_mysqli。 mod_mysql ,这是框架文档:kohanaframework.org/3.1/guide/database/query/builder 我想我找到了问题所在。我尝试在程序中为每个用户创建一个随机ID,然后我使用“select account_id”直接返回帐户。我对此发表评论,异常消失了。【参考方案2】:尝试用 SELECT 替换 call...
$queryStr = "SELECT sp_createUser('$nick_name','$email','$password','127.0.0.1')";
【讨论】:
使用 CALL 语句调用过程 (dev.mysql.com/doc/refman/5.1/en/call.html)以上是关于如何在 kohana 3.1 中调用程序的主要内容,如果未能解决你的问题,请参考以下文章