我有一个可以在php 5.3(XAMPP 1.7.3,Windows 7)上正常工作的类,但是在我的服务器上不起作用(php 5.2.17-安全模式上):

 <?php

    class MYSQL_DB {

        var $connection;

        function MYSQL_DB() {
            $this->connection = mysql_connect(S, U, P) or die('Can\'t connect to MySQL server.');
            mysql_select_db(DB, $this->connection) or die(mysql_error());
        }

        function getJobs($wid) {
            $q = "SELECT * FROM " . TB_PREFIX . "joblist where owner = {$wid} order by ID ASC";
            $result = mysql_query($q, $this->connection);
            $ret = $this->mysql_fetch_all($result);
            mysql_free_result($result);
            return $ret;
        }

        function mysql_fetch_all($result) {
            $all = array();
            if ($result) {
                while ($row = mysql_fetch_assoc($result)) {
                    $all[] = $row;
                }
                return $all;
            }
        }

    }
    $db=new MYSQL_DB();

?>

在另一个文件中,我使用了getjobs函数:
<?php
    $tempbJobs=$db->getJobs(1368);
    var_dump($tempbJobs);
?>

当我在var_dump函数中的return $ret;之前使用getjobs时,它向我显示正确的值,但是var_dump($tempbJobs);将打印 NULL

PS:我简化了代码,它可以在我的本地主机上运行,​​但不能在生产服务器上运行。
P.S:如果我将return $ret;更改为return 'DUMPED';,则返回的值将是string(6) "DUMPED"var_dump($ret );输出:
array(2) {
  [0]=>
  array(5) {
    ["id"]=>
    string(5) "10755"
    ["owner"]=>
    string(5) "23626"
    ["field"]=>
    string(1) "6"
    ["type"]=>
    string(1) "2"
    ["expi"]=>
    string(10) "1372144648"
  }
  [1]=>
  array(5) {
    ["id"]=>
    string(5) "10756"
    ["owner"]=>
    string(5) "23626"
    ["field"]=>
    string(1) "5"
    ["type"]=>
    string(1) "2"
    ["expi"]=>
    string(10) "1372144654"
  }
}

最佳答案

基于以下事实:如果$ result为true,则仅从函数mysql_fetch_all($ result)返回$ all,我必须假定mysql_query()返回false。

致电后

$result = mysql_query($q, $this->connection);

你能添加这个吗
$result = mysql_query($q, $this->connection);
if ( ! $result ) {
    echo "ErrorNo: " . mysql_errno() . " Error Message: " . mysql_error();
}

这可能有助于确定问题的根源,因为它一定是某种数据库错误。

关于PHP函数不返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17290946/

10-11 23:30
查看更多