这听起来像个愚蠢的问题,但我开始使用PHP和MySQL,并在第一步失败,尝试连接数据库:
<html>
<head>
</head>
<body>
<?php
$con = mysqli_connect("localhost", "root", "root", "ASOIAF.odb");
if (mysqli_connect_errno()) {
echo "Failed to connect to database";
} else {
echo "Connected to database";
}
mysqli_close($con);
?>
</body>
</html>
我不明白第一个主机参数。一个yahoo help页面说主机应该是“mysql”,但是当我使用它时它也无法连接。数据库ASOIAF在LibreOffice Base上采用OpenDocument数据库格式(odb)。我正在使用Uniserver来运行PHP和MySQL;两者目前都在运行。 Web应用程序存储在Uniserver的www文件夹中,并通过localhost在Google Chrome上运行。
我应该在connect
声明的主机部分插入什么内容?或者我在PHP代码中做了一个更基本的语法错误,阻止了连接?
答案 0 :(得分:0)
MySQL的主机名是什么?
我们不知道你所谓的运行MySQL的计算机是什么。
雅虎帮助页面说主机应该是“mysql”
这是Yahoo Web Hosting特有的。这听起来并不像您正在使用他们的服务,所以这是不适用的。
我正在使用Uniserver来运行PHP和MySQL
这表明运行运行PHP的Web服务器的计算机和运行MySQL服务器的计算机是同一台计算机。这使得localhost
合适。
localhost
是专用网络上只有它连接的计算机的标准名称。因为MySQL具有特殊含义,并且通过套接字而不是TCP / IP(更高效)导致连接。
我应该在connect语句的主机部分插入什么内容?
localhost
如果上述内容正确无误。
或者我在PHP代码中发出了一个更基本的语法错误,阻止了连接?
我看不到任何语法错误。我怀疑问题可能归结为您的数据库配置。你有没有告诉MySQL服务器ASOIAF.odb
?这就是MySQL内部实际调用的数据库(而不仅仅是存储LibreOffice配置以连接到该数据库的文件)。
你最大的错误就是没有使用mysqli_error
来找出PHP报告的问题。
if (mysqli_connect_errno()) {
echo "Failed to connect to database";
echo mysqli_error();
答案 1 :(得分:-1)
使用
mysqli_connect("localhost", "root");
希望它能运作