【问题标题】:Accessing MySql Database from PHP file on local host从本地主机上的 PHP 文件访问 MySql 数据库
【发布时间】:2013-09-27 13:59:40
【问题描述】:

我正在尝试在 LAMP 服务器上进行简单的连接和选择。

我在连接到远程 sql 数据库时使这个 php 代码工作,但我不能让它与本地数据库一起工作。

 <?php
    //I also tried replacing the IP with localhost
    $db = mysql_connect('192.168.1.69','UserIcreated','MyPassword') or die("Connection error");
    $db = mysql_select_db("MyDataBaseName",$db) or die(mysql_error($db));
    
        $result = mysql_query("SELECT * FROM  MyTableName");
    
        if(mysql_num_rows($result)>0){
            echo "Try again";
        }
        else{
            echo "It works";
        }
    ?>

您可以在这里看到我的服务器正在提供 PHP 页面(http://162.226.5.161/workingphp.php)

但是当您尝试连接到上述代码 (http://162.226.5.161/TestPhp.php) 时,它会出错。错误 500

当我创建用户时,我还授予用户在服务器上的 SELECT 权限

更新

所以错误发生在第 1 行:

 $db = mysql_connect('192.168.1.69','UserIcreated','MyPassword') or die("Connection error");

我注释掉了其余的代码,但仍然出现错误。所以我认为这是一个配置问题。有什么见解吗?

【问题讨论】:

  • 你说“errors out”……什么错误?
  • 另外,MySQL数据库经常通过IP地址限制客户端,没有任何额外信息,我猜你没有将你的本地IP地址列入白名单。
  • 什么错误...,,,,,,,,,,,,,,,,
  • 抱歉其内部服务器错误 500
  • die(myql_error($db)) 你在mysql_ 中缺少s

标签: php mysql localhost lamp


【解决方案1】:

只要确保您使用的是有效凭据,如果一切正常,请查看以下内容:

.htaccess 文件出错

如果您在网站上使用 .htaccess,它可能会干扰您尝试加载到浏览器中的网页。请仔细检查 .htaccess 配置。任何语法错误都会导致显示 500 Internal Server Error 消息而不是您的网站。

要确认 .htaccess 配置错误是否是导致 500 Internal Server 错误的原因,请暂时删除或重命名 .htaccess 文件,然后尝试重新加载页面。

另见:

使用 .htaccess 重写规则 使用 .htaccess 文件

PHP 编码超时

如果您的 PHP 脚本建立外部网络连接,连接可能会超时。如果尝试的连接过多并超时,这将导致“500 内部服务器错误”。为了防止这些超时和错误,您需要确保 PHP 脚本使用一些超时规则进行编码。然而,通常情况下,在连接到数据库或外部远程资源(例如:RSS 提要)时捕获超时错误是很困难的。实际上,它们会冻结脚本继续运行。

删除任何外部连接可以提高您网站的性能并降低您收到“500 内部服务器错误”的机会。

内部服务器错误 500 不是客户端或网站/网络故障...

【讨论】:

  • 我将 htaccess 文件重命名为 htaccess2 并收到相同的错误。数据库和服务器都在同一台机器上
【解决方案2】:

您在第二行的 $db 中重新分配了连接资源 ID

在第二行将$db更改为$db2(数据库选择功能)

使用

$db = mysql_connect('192.168.1.69','UserIcreated','MyPassword') 
      or die("Connection error");

$db2 = mysql_select_db("MyDataBaseName",$db) 
      or die(myql_error($db));

代替

$db = mysql_connect('192.168.1.69','UserIcreated','MyPassword') 
      or die("Connection error");

$db = mysql_select_db("MyDataBaseName",$db) 
      or die(myql_error($db));

【讨论】:

  • 我做了这个改变,结果是一样的
  • 我在 162.226.5.161/TestPhp.php 做了一个 phpinfo() 打印,这告诉你问题了吗?
猜你喜欢
  • 1970-01-01
  • 2021-11-11
  • 2012-05-23
  • 2017-11-30
  • 2011-07-07
  • 2014-04-10
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
相关资源
最近更新 更多