到MySQL的远程连接可以通过命令行工作,但当从web浏览器使用php的MySQL_connect时失败

到MySQL的远程连接可以通过命令行工作,但当从web浏览器使用php的MySQL_connect时失败,php,mysql,mysql-connect,Php,Mysql,Mysql Connect,我试图使用PHP的“MySQL_connect”功能连接到MySQL服务器,但连接失败。这是我的代码: $con = mysql_connect("example.net", "myusername","") or die("Could not connect: ".mysql_error()); 我将这段代码放在一个PHP脚本中,我尝试使用web浏览器打开该脚本。该脚本存储在启用了PHP的远程主机上,但无法工作。它也不会返回骰子错误。在浏览器中成功输出$con之前的内容,而在该行之后没有输

我试图使用PHP的“MySQL_connect”功能连接到MySQL服务器,但连接失败。这是我的代码:

$con = mysql_connect("example.net", "myusername","") or die("Could not connect: ".mysql_error()); 
我将这段代码放在一个PHP脚本中,我尝试使用web浏览器打开该脚本。该脚本存储在启用了PHP的远程主机上,但无法工作。它也不会返回骰子错误。在浏览器中成功输出$con之前的内容,而在该行之后没有输出任何内容。如果我键入:

mysql -h example.net -u myusername
从远程机器上,我可以毫无问题地连接到数据库,并进行查询和其他修改

更新: 在提出一些建议后,我也尝试了这一点,但没有改进:

<?php
    $usern = "myusername";
    $dbh = new PDO('mysql:host=servername.net;dbname=test', $usern, "");
    echo $usern;
?>

php文件是否与mysql数据库位于同一服务器上,如果是这样,您可能必须使用“localhost”作为mysql\u connect的第一个参数,而不是外部地址。

运行php的远程主机使用的是什么操作系统?可能php.ini中没有启用MySQL。另外,请不要在新代码中使用mysql_*函数。它们不再得到维护,社区已经开始看到。相反,您应该了解并使用或。如果你不能决定哪一个,我会帮你的。如果你想学习

您是否尝试过使用PDO或MySQLi接口?如果你想学习PHP,无论如何都不应该使用mysql函数。查看是否可以使用以下类似的行访问数据库:

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
如果需要更详细的文档,此代码直接来自

编辑:另外,尝试使用PDO的错误检查功能。本例使用PDO创建数据库连接,并尝试执行简单查询。它不使用预先准备好的语句或任何这些功能,因此它不是可用于生产的代码,即。*不要在不了解如何改进它的情况下将其放入代码中,您需要对其进行编辑,以包含与数据库相关的SELECT查询,但它至少应该告诉PDO提供更多关于它遇到的错误的信息

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

$dbhost     = "localhost";
$dbname     = "test";
$dbuser     = "root";
$dbpass     = "admin";

// database connection
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);

// query
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM booksa";
$q = $conn->query($sql) or die("ERROR: " . implode(":", $conn->errorInfo()));

$r = $q->fetch(PDO::FETCH_ASSOC);

print_r($r);
?>

您好,php文件位于另一个服务器web宿主服务器中,因此localhost无法工作。我意识到web主机没有php mysql连接,也就是说,如果我在“web主机”上通过命令行执行php文件,它会失败,并出现以下错误:php致命错误:调用未定义的函数mysql\u connect。这可能是原因吗?是的,那可能是原因!很可能您的托管计划不支持php mysql模块。。。试着放一个phpinfo;查看是否加载了mysqli或mysql。无论您是否可以让mysqli\u connect正常工作,都不应该使用它。请阅读我发布的整段文章,了解确切的原因。尽管您可能只是想让某些功能正常工作,但这并不是使用不推荐使用的、不安全的函数集(如mysql_*函数)的一个可接受的理由。谢谢您的提示。我切换到了你提到的新代码,但这并不能解决我的问题。我尝试了这个简单的文件:它没有在浏览器中打印$usern。@iamauser它是否显示错误消息?你能发布你使用的PDO代码吗?你可以通过编辑你的问题来发布它吗?我对提问是新手。你能告诉我写代码的正确格式吗:这是我使用的代码@我会编辑你的问题并输入代码,因为在评论中很难阅读。据我所知,您既没有定义服务器,也不是字符串中的变量名,因为这将是$server。如果您直接单击问题下方的“编辑”,并将代码复制到问题的新部分,会更容易。我现在已经这样做了。请查收。当我在这里发布服务器名时,我用一些虚拟名称替换了它。关于你的问题,它是否返回任何错误,不,它不会返回任何错误,只是一个空白的白色屏幕。