php - 在 PHP 中多次调用 MySQL 存储例程

标签 php mysql stored-procedures

我想使用 PHP 顺序调用多个 MySQL 存储例程,但我只能成功调用一个一个——之后我收到错误命令不同步;您现在无法运行此命令。研究这个问题时,我发现这是一个常见的头痛问题(由于在下一个调用之前没有“完成”上一个调用而导致),但我没有找到可以应用于我的代码的解决方案:

for ($i=0; $i<10; $i+=1) 
{
    if (!($conn=getconn() && ($result=mysql_query("call MyStoredRoutine();", $conn))))
    {
        $errorMessage = mysql_error($conn); // Error 2nd time here...
    }
    else {
        while ($row=mysql_fetch_array($result)) {
            // Retrieve data here...
        }
    }
}

以及 getconn() 的实现(我认为它不相关,但你永远不知道):

function getconn() {
    global $custdb, $custdb_connection, $dbuser, $dbpass;
    if (! $custdb_connection) {
        if (! ($custdb_connection = mysql_connect("localhost", $dbuser, $dbpass, true))) return false;
        if (! (@ mysql_select_db($custdb, $custdb_connection)))  return false;
    }
    return $custdb_connection;
}

PHP 版本为 5.3.8-1~dotdeb.1,MySQL 为 5.1.54-1ubuntu4

有人知道我应该对我的代码做什么才能使其正常工作吗?

最佳答案

也许切换到 MySQLi 并使用 multi-query()

MySQLi 为您提供准备好的语句的额外好处,并且是为支持 OOP 而构建的。

关于php - 在 PHP 中多次调用 MySQL 存储例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9512831/

相关文章:

php - 如何防止 PHP 中的 SQL 注入(inject)?

sql - 选择放置在数据库表中间的特定数据

php - Htaccess 只允许特定的 URL 不加载它的 CSS

php - 在 Laravel 中运行 python 脚本

php - 如何修复 magento 中的长 url 以进行分层导航。搜索引擎优化实践

php - 从 Woocommerce Hook 中删除功能

php - #1054 - 'ord' 中的未知列 'field list'

mysql - 在#mysql工作台中使用过程添加列时遇到问题

asp.net - 我可以将列表传递给存储过程吗?

testing - 如何使用jmeter执行存储过程并得到结果