如何让PHP和PDO在Godaddy共享托管中工作?

时间:2017-12-10 08:09:31

标签: php mysql pdo

当我试图让MySQL在Godaddy共享主机中使用PDO实例时,我发现了一个致命的错误。

代码我试图连接我的数据库:

代码1

   try{
      $connect = new PDO('mysql:host=localhost;dbname=dbname;charset=utf8', 'user', 'password',
     array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
     $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   }catch(PDOException $e){
      die('Error connecting to database');
   }

当我使用此代码时,正在打印'错误连接到数据库'

代码2

$dsn = 'mysql:host=localhost;dbname=dbname';
$user = 'user';
$password = 'password';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}    

当我使用此代码时,它会打印错误:

  

'连接失败:SQLSTATE [HY000] [1044]访问被拒绝用户'用户' @' localhost'到数据库' dbname"

Godaddy支持说这是一个字符串错误,我必须从我的最终审查,他们要求付费服务从他们的结束解决它。我发现这两个代码都在我的本地服务器(xaamp)中运行。

2 个答案:

答案 0 :(得分:1)

首先,确保配置数组中的所有内容都正确,然后在PDO实例之前添加'\':

$userID=$_SESSION['userID']; 
$serverName = ''; 
$uid = '';   
$pwd = '';
$database=$_SESSION['userID']; //sometimes correct database, other times 
                                 incorrect database  
$connectionInfo = array( "UID"=>$uid,                            
                         "PWD"=>$pwd,                            
                         "Database"=>$database); 

$conn = sqlsrv_connect( $serverName, $connectionInfo);
if(!$conn ) {
echo "invalid database name";
  }

答案 1 :(得分:1)

在共享主机中,您通常会发现mysql服务器是而不是 localhost,您通常会发现您的提供程序会将mysql服务器放在单独的机器上。

使用godaddy登录您的控制面板并查看设置,您可能必须先创建数据库。