【问题标题】:PDO no such file or directory - only ftp server accessPDO 没有这样的文件或目录 - 只有 ftp 服务器访问
【发布时间】:2014-12-20 08:02:33
【问题描述】:

我正在将我们的 php 管理移动到新服务器(托管),但在尝试迁移的系统时,我检测到我们的代码无法访问 MySql 数据库。该代码以前有效,新的虚拟主机表示它支持 PDO。我们只能通过 ftp 和 phpmyadmin 访问实际服务器,从而阻止我们访问 php.ini。我们希望能够继续使用 PDO。

  1. 任何想法如何解决这个问题,如果没有

  2. 我们如何让这个文件以相同/相似的方式工作但没有 PDO?

Class Database{

    protected $_link;

    public function __construct(){
        $config['db'] = array(
            'hostname' => 'localhost', //The provided XXX.loopia.se and 127.0.0.1 has also been attemped here with no result
            'dbname' => 'database_name',
            'username' => 'user_name',
            'password' => 'password'
        );
        $db = new PDO('mysql:hostname=' . $config['db']['hostname'] .';dbname=' . $config['db']['dbname'], $config['db']['username'], $config['db']['password']);
        $this->_link = $db;
    }
}

日志输出:

PHP 警告:PDO::__construct() [pdo.--construct]: [2002] 没有这样的文件或 目录(尝试通过 unix:///tmp/mysql.sock 连接)

链接到loopia的“PHP to SQL”-use-this-code:https://support.loopia.se/files/php_till_mysql.zip

【问题讨论】:

  • 这可能是因为端口错误。尝试将;port=/path/to/mysql.sock 与您的提供者的真实路径一起传递。如果您不想使用 PDO,请使用 mysqli
  • 参见7php.com/… - 可能就像Brewal 所说的那样,端口$dbh = new PDO("mysql:host=$hostname:3306;dbname=$dbname", $username, $password);。谷歌错误信息。您会找到其他链接。
  • 我现在正在调查 Brewal 的回答和 Fred 的链接。我用谷歌搜索了这条消息,但我发现的只是人们编辑他们的 php.ini 文件或其他我无法访问的本地系统文件。
  • 我对我的评论做了一点修改,添加了$dbh = new PDO("mysql:host=$hostname:3306;dbname=$dbname", $username, $password); 作为示例,以防您可能没有看到。

标签: php mysql pdo


【解决方案1】:

从网络主机的快速反馈后,上述方法似乎不是在 loopia 完成此操作的首选方式。为其他谷歌员工进一步参考,这是收到的代码(并已编辑以符合上述目的):

<?php
Class Database{
protected $_link;
public function __construct(){

$hostname = "xXXX.loopia.se"; //Log on to phpmyadmin and see what it says in the top after "server"
$username = "username";
$password = "password";

try {
    $db = new PDO("mysql:host=$hostname;dbname=<DBNAME>",
    $username, 
    $password, 
    array(PDO::MYSQL_ATTR_INIT_COMMAND =>  "SET NAMES utf8"));
    $this->_link = $db;
}
catch(PDOException $e)
{
    echo $e->getMessage();
}
}

} ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 2016-02-26
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 2020-12-11
    相关资源
    最近更新 更多