【问题标题】:Connecting web page to database using PHP gives strange results使用 PHP 将网页连接到数据库会产生奇怪的结果
【发布时间】:2014-05-15 11:01:08
【问题描述】:

我在家里设置了一个 Raspberry Pi Web 服务器,并设置了 phpMyAdmin 来管理数据库。

我创建了一个数据库来保存一些信息,这些信息将用于在 Google 地图上放置标记(多个用户将为角色扮演活动添加不同类型的标记)。

我的问题是我似乎无法连接到数据库。尽管我尝试了许多不同来源的示例代码,但我得到了奇怪的结果。例如

使用此代码:

<?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
"; } ?>

我试过的本地主机“localhost”,一个指向服务器的域名,它们两者的组合等等。事实是我觉得我不明白屏幕上的打印结果,感觉可能我已经能够连接,但我被似乎不合逻辑的 echo 语句误导了。

我的印象是 phpMyAdmin 也可以生成连接代码,但我似乎找不到任何类似的东西。

【问题讨论】:

  • 尝试查看该页面的源代码。我想知道 PHP 解释器是否没有启动,它只是将脚本呈现为文本?如果您可以看到一些 PHP,则意味着它根本没有执行。不,据我所知,phpMyAdmin 不会生成 PHP 代码。
  • 上述打印输出与提供的代码不相关。请使用 COMPLETE 数据库连接代码编辑您的问题并完成输出
  • 在运行 phpinfo.php 时,我得到了很多表并返回了很多信息,所以我想我确实有 php 实例化并正在运行。

标签: php mysql mysql-connect


【解决方案1】:

请检查是否正常

$conn = mysqli_connect("localhost", "root", "password", "dbname");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

而不是$con-&gt;connect_error 使用mysqli_connect_errno()

【讨论】:

  • 此代码在 php 文件中的工作方式与预期完全一样 - 非常感谢!
【解决方案2】:

试试这个,替换这个

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();     
}

【讨论】:

  • 非常感谢您的帮助!好的,所以当我替换时: if (mysqli_connect_errno()) { echo "Failed to connect to MySQL:" 。 mysqli_connect_error(); } 与: if (mysqli_connect_errno()) { printf("连接失败:%s\n", mysqli_connect_error());出口(); } 我没有在屏幕上打印任何错误。这 100% 是否意味着我已连接?我想我在这里的全部恐惧是,我实际上不知道我是否真正连接,就好像我将密码更改为不正确的一样它也不会显示错误......
【解决方案3】:

这是一个奇怪的打印输出。尝试使用

if ($con->connect_error) {
   echo "Failed to connect to MySQL: " . $con->connect_error;
}

或者其他方式

if (!$con) {
    die('Failed to connect to MySQL: ' . mysqli_connect_error());
}

【讨论】:

  • 我当前的代码是这样的: connect_error) { echo "连接 MySQL 失败:" . $con->连接错误; } ?> 我的读数是这样的: connect_error) { echo "Failed to connect to MySQL:" 。 $con->连接错误; } ?> 有什么想法吗?
  • 我没有收到任何错误。仅当您 //Create connection 评论没有与您的其他代码混淆时才检查。留下适当的中断和空格(重新格式化代码)。
  • 我尝试从 html 中取出代码并将其直接放在 php 文件中。 php文件内容为:
  • 看起来还可以。此代码适用于 PHP 而不是 HTML 文件
  • 感谢约翰的提示!
【解决方案4】:

用于连接数据库的@mysql_connect 代码位于一个 html 文件中,而 Apache 没有配置为将 html 文件作为 php 文件运行。我现在只能使用 .php 格式文件连接到数据库。最终的工作代码是:

$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服务器中。

此时,添加正确的参数会导致连接成功,添加错误的参数会导致显示错误消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-04
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 2022-01-23
    • 2018-03-08
    相关资源
    最近更新 更多