php - PDO 没有这样的文件或目录 - 仅 ftp 服务器访问

标签 php mysql pdo

我正在将 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 Warning: PDO::__construct() [pdo.--construct]: [2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock)

链接到loopia的“PHP to SQL”-使用此代码:https://support.loopia.se/files/php_till_mysql.zip

最佳答案

经过网络主机的快速反馈,上述似乎并不是在 Loopia 实现此目的的首选方法。为了供其他 Google 用户进一步引用,这是收到的代码(并经过编辑以符合上述目的):

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

} ?>

关于php - PDO 没有这样的文件或目录 - 仅 ftp 服务器访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26548656/

相关文章:

php - 如何正确将PHP脚本转换为PDO?

php - 打包和解包 64 位整数

php - mysql:优化sql查询和慢查询

mysql - MySQL中神秘的 "using_filesort"

.net - 尝试在 .net 中使用 Mysql

php - Docker 使用 PHP 连接 MySQL 的问题

php - 非常不合逻辑的 php 值比较

php - 根据 MySQL 日期自动发送电子邮件

php - 如何从 MySQL 查询创建数组?

PHP mysql : inserting data from an array