【问题标题】:How to call procedure in kohana 3.1如何在 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 连接好像有问题..

我该如何解决它...寻求帮助..

【问题讨论】:

    标签: php mysql kohana producer


    【解决方案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')";
    

    【讨论】:

    猜你喜欢
    • 2011-09-02
    • 1970-01-01
    • 2011-08-04
    • 2011-10-22
    • 2011-09-08
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多