PHP&;MySQLi:';返回$mysqli_object';不会';不要退货


PHP & MySQLi: 'Return $mysqli_object' doesn't return anything

大家好!

我的MySQLi有一个奇怪的错误,我使用了一个connect()函数,该函数(据说)返回了一个MySQLi对象,但它似乎没有返回任何东西。

这是我的功能:

    function Connect() {
        global $dbg;
        if( $dbg === false ) {
            echo("test 1");
            $dbg = new mysqli ("localhost", "root", "", "erp");
            if ($dbg->connect_errno) {
                echo "( " . $dbg->connect_errno . ") " . $dbg->connect_error;
            }
            echo("test 2");
        }
    return $dbg;
    echo("test 3");
    }

此打印到屏幕"测试1"answers"测试2",但不是"测试3"
php似乎被卡住了,因为它包含了一个包含所有图形设置的文件,并且图形无法打印到屏幕上。

有趣的事情:

    function Connect() {
        global $dbg;
        if( $dbg === false ) {
            $dbg = new mysqli ("localhost", "root", "", "erp");
            if ($dbg->connect_errno) {
                echo "( " . $dbg->connect_errno . ") " . $dbg->connect_error;
            }
        }
    $st = $dbg->prepare('INSERT INTO testtable(ID) VALUES (1)');
    $st->execute();
    return $dbg;
    }

这是有效的。插入已完成所以我猜这个返回$dbg;是什么让一切都见鬼去了,但我不知道问题是从我的Web服务器的哪里来的。

它在Wamp上本地运行时没有出现故障,但部署到Web服务器后就不再工作了。唯一想到的是php4.something安装在Web服务器上,而我的wamp使用的是php5。它能从那里来吗?

感谢各位读者!

如果您想看到回波,请将其放在返回之前

echo("test 3");
return $dbg;

否则代码将不会执行。

至于让mysqli在你的服务器上工作,你需要确保你的PHP是5或更高版本。

对不起,我的错,测试是在返回之前用echo完成的,我自己在论坛上添加了代码

而且,Mike W,尽管它需要php5,但我仍然成功地完成了插入。你能用统一测试做什么真是太神奇了,你不觉得吗?事实上,MySQLi是建议的,因为MySQL 4.1.3,你只需要检查/修改你的php.ini文件

很抱歉再次打扰你们,发现我的问题:

  • 尽管它很愚蠢,但我使用的全局变量register_globals=0,所以它无法工作
  • 然后我又犯了一个错误,因为我现在几乎不需要mysqlnd驱动程序

再次感谢
同轴,
Zawarudio