大家好!
我的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