这听起来像一个愚蠢的问题,但我开始在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>
我不明白第一个host参数。一个雅虎帮助页面说主机应该是"mysql",但是当我使用这个时,它也无法连接。该数据库ASOIAF采用OpenDocument数据库格式(odb),位于LibreOffice Base上。我用Uniserver来运行PHP和MySQL;两者目前都在运行。web应用程序存储在Uniserver的www文件夹中,并通过localhost在Google Chrome上运行。
我应该在connect
语句的host部分插入什么?还是我在PHP代码中犯了一个更基本的语法错误,导致无法建立连接?
MySQL的主机名是什么?
我们不知道你运行MySQL的电脑叫什么。
雅虎帮助页面说主机应该是"mysql"
这是Yahoo Web Hosting特有的。听起来不像你在使用他们的服务,所以这是不适用的。
我使用Uniserver来运行PHP和MySQL
这表明运行PHP的web服务器的计算机和运行MySQL服务器的计算机是同一台机器。这使得localhost
是合适的。
localhost
是专用网络上的计算机的标准名称,仅与之连接。对于MySQL来说,它有一个特殊的含义,它使连接通过套接字而不是TCP/IP(这更有效)进行。
我应该在connect语句的host部分插入什么?
localhost
或者我在PHP代码中犯了一个更基本的语法错误,阻止了连接?
我看不出任何语法错误。我怀疑问题可能出在您的数据库配置上。你告诉MySQL服务器ASOIAF.odb
了吗?这是数据库实际上在MySQL中被称为(而不是仅仅是存储LibreOffice连接到该数据库的配置的文件)。
你最大的错误是没有使用mysqli_error
来找出PHP报告的问题。
if (mysqli_connect_errno()) {
echo "Failed to connect to database";
echo mysqli_error();
use
mysqli_connect("localhost", "root");
希望能成功