我今天一直试图做一些数据库工作,当我意识到MySQLi一直在破坏我的页面时,我遇到了一些问题。请允许我解释一下。这就是我在Exd.php
上的服务器上的内容<!DOCTYPE html>
<html>
<head>
<title>ExD</title>
<!-- Metadata -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?php
echo "Script begins here";
$link = mysqli_connect('localhost', 'root', '<Password>','ExD');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
echo "Script ends here";
?>
</body>
</html>
当我在Mac上的Chrome上请求此页面,或者甚至是在提供此文件的同一台计算机上的Chrome时,页面上的唯一输出来自我说脚本开始的第一个echo
。如果我查看客户端页面的来源,则会显示(所有显示):
<!DOCTYPE html>
<html>
<head>
<title>ExD</title>
<!-- Metadata -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
Script begins here
ExD 是我在MySQL中创建的数据库,它包含一个名为&#39; Person&#39;列有&#39; id&#39;和&#39; name&#39; (它是调试的基本表。)
这是我的PHP.ini文件:ExD PHP.ini on PasteBin
如果你确实需要,我也可以提供我的phpinfo()。只是一个注意事项 - 我已经看过phpinfo()和所有MySQL相关的单元格(和MySQLi相关的单元格)都有为PHP实现它们的人的名字的值,所以我猜测这意味着他们正常工作并且已经启用。
为什么世界会发生这种情况?为什么MySQLi打破了这个页面?
编辑:我已成功取得进展。现在,我已经能够连接到数据库了,并且我已经成功连接了数据库&#39;我页面上的消息,但在打印到页面后立即再次中断,所以当我在Chrome中查看来源时,我看到:
<!DOCTYPE html>
<html>
<head>
<title>ExD</title>
<!-- Metadata -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
Script begins hereConnected successfully
所以页面仍在破碎,但MySQLi正在工作,直到我拨打mysql_close($link);
。
我还对PHP.ini进行了以下更改:
extension_dir = "C:/PHP/ext"
extension=php_mysqli.dll
(取消评论)
您可以再次访问我的网站以观看演示!我现在有点迷失了,为什么会发生这种情况。
编辑:非常感谢rack_nilesh注意到我正在调用错误的扩展方法!现在一切都正常。我很开心!
答案 0 :(得分:1)
您已撰写mysqli_connect
。
所以mysql_error
和mysql_close
分别为mysqli_error
和mysqli_close
。
同时确认密码是否正确并打开错误报告。
答案 1 :(得分:0)
我敢打赌你没有安装或启用mysqli扩展。查看http://php.net/manual/en/mysqli.installation.php
也做@Naruto说的话。
答案 2 :(得分:0)
如果您想使用mysql
(不推荐),请将mysqli_connect
更改为mysql_connect