我在家里设置了一个Raspberry Pi Web服务器,我设置了phpMyAdmin来管理数据库。
我创建了一个数据库来保存一些信息,这些信息将用于在Google地图上放置标记(多个用户将为角色扮演事件添加不同类型的标记)。
我的问题是我似乎无法连接到数据库。虽然我尝试过来自许多不同来源的示例代码但我得到了奇怪的结果。 E.g。
使用此代码:
<?php
// Create connection
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if($con)
{
echo "Connection OK";
}
if(!$con)
{
echo "No Connection";
}
?>
我在网页上打印出以下内容:
Connection OK
"; } if(!$con) { echo "
No Connection
"; } ?>
本地主机我已尝试过#host; localhost&#34;,一个指向服务器的域名,两者的组合,等等。事实是我觉得我不明白屏幕上显示的打印结果,感觉可能是我已经能够连接,但我被回声陈述误导,这似乎不符合逻辑。
我的印象是phpMyAdmin也能够生成连接代码,但我似乎无法找到任何类型的东西。
答案 0 :(得分:1)
试试这个,替换这个
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
用这个
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
答案 1 :(得分:1)
这是一个奇怪的打印输出。尝试使用
if ($con->connect_error) {
echo "Failed to connect to MySQL: " . $con->connect_error;
}
或其他方式
if (!$con) {
die('Failed to connect to MySQL: ' . mysqli_connect_error());
}
答案 2 :(得分:1)
请检查这是否正常
$conn = mysqli_connect("localhost", "root", "password", "dbname");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
而不是$con->connect_error
使用mysqli_connect_errno()
答案 3 :(得分:0)
用于连接数据库的@mysql_connect代码存放在一个html文件中,而Apache没有配置为将html文件作为php文件运行。我现在只能使用.php格式文件连接到DB。最终的工作代码是:
$conn = mysqli_connect("localhost", "root", "password", "dbname");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
它作为databaseConnection.php保存在Web服务器中。
此时,添加正确的参数会导致连接成功,并且添加不正确的参数会导致显示错误消息。