gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 02:32:24 24 4
gpt4 key购买 nike

我正在尝试使用 PHP 的“mysql_connect()”函数连接到 MySQL 服务器,但连接失败。这是我的代码:

$con = mysql_connect("example.net", "myusername","") or die("Could not connect: ".mysql_error()); 

我将这段代码放在一个 PHP 脚本中,我尝试使用 Web 浏览器打开它(该脚本存储在启用了 PHP 的远程主机上)但它不起作用。它也不返回 die 错误。在 $con 之前回显某些内容在浏览器中成功输出,而在该行之后没有任何输出。如果我输入:

mysql -h example.net -u myusername

从远程机器上,我可以毫无问题地连接到数据库并进行查询和其他修改。

更新:我也根据一些建议尝试了这个,但没有改进:

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

最佳答案

运行 PHP 的远程主机使用什么操作系统?可能 php.ini 中未启用 MySQL。另外,请不要对新代码使用 mysql_* 函数。它们不再维护,社区已经开始 deprecation process (参见 red box)。相反,您应该了解 prepared statements并使用 PDOMySQLi .如果你不能决定哪个,this article会帮助你。如果你想学习,this is a good PDO tutorial .

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

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

如果您需要更详细的文档,此代码直接来自 documentation itself .

编辑:另外,尝试使用 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 - 远程连接到 MySQL 可以通过命令行工作,但是当从网络浏览器使用 php 的 mysql_connect 时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11160068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com