PHP Mysql存储过程错误

时间:2014-02-08 15:32:41

标签: php mysql stored-procedures mysqli

我是一名Java程序员,他必须为应用程序创建一个php Web服务,因为我正在创建的应用程序必须与服务器上的MYSQL数据库进行通信。 现在,作为一名Java程序员,我用它来创建存储过程并从我的Java代码中调用它们。我尝试用PHP,似乎我有一些问题。 我试图一个接一个地调用2个存储过程。这是执行该操作的PHP代码:

        require_once '../commonFunctions.php';        
        global $connect;    
        $usersOnQuestion = executeProcedure("getUsersOnQuestion", array($questionID));

        mysqli_store_result($connect);

        while($r = mysql_fetch_assoc($usersOnQuestion)) {
            //processing the data
            //...
            //echo "Hello!";
            //..
        }
        mysqli_next_result($connect);

        executeProcedure("removeCurrentUser", array($userID));

“commonFunctions.php”如下所示:

<?php
$connect = @mysqli_connect($mySql_host, $mySql_uname, $mySql_pass) or die("conn error");
mysqli_select_db($connect, $mySqlBase);

function executeProcedure($procedureName, $params) {
    global $connect;
    $paramsString = "";
    $paramsString = $paramsString."(";
    foreach ($params as $param) {
        if($paramsString !== "(")
            $paramsString = $paramsString.",";
        $paramsString = $paramsString."'".prepareParam($param)."'";
    }
    $paramsString = $paramsString.")";
    $rez = mysqli_query($connect, "CALL ".$procedureName.$paramsString) or die (mysql_error());
    return $rez;
}

function executeProcedure1($procedureName) {
    return executeProcedure($procedureName, array());
}

function prepareParam($param) {
    global $connect;
    return mysqli_real_escape_string($connect, $param);
}
?>

正如您所料,起初我开始收到一些“调用不同步”错误消息,然后我花了几个小时阅读“next_result()”,“store_result()”等,并提出了我提交的代码你 - 还是什么都没有!

两个程序都已执行。使用“print_r”我验证“$ usersOnQuestion”包含一些数据,但“while”循环永远不会被执行。 为什么?我做错了什么?

请你帮我解决这个问题(因为我没有使用PHP编程的xp),或者更好地指出一些现成的php lib,它可以在没有“锅炉板”代码的情况下使用db吗?

0 个答案:

没有答案