Php Erreur:SQLSTATE[HY000][1044]

Php Erreur:SQLSTATE[HY000][1044],php,pdo,ovh,mysql-error-1044,Php,Pdo,Ovh,Mysql Error 1044,我正在使用PDO连接数据库和表单HTML以创建高级注册 问题是我收到以下错误消息: Erreur: SQLSTATE[HY000] [1044] Access denied for user 'mysuser'@'%' to database 'advanced-registration' 我检查了登录信息,一切正常 该数据库由OVH托管 我的连接代码: try { $db = new PDO('mysql:host=myhost; dbname=advanced-registratio

我正在使用PDO连接数据库和表单HTML以创建高级注册

问题是我收到以下错误消息:

Erreur: SQLSTATE[HY000] [1044] Access denied for user 'mysuser'@'%' to database 'advanced-registration'
我检查了登录信息,一切正常

该数据库由OVH托管

我的连接代码:

try {

  $db = new PDO('mysql:host=myhost; dbname=advanced-registration','myuser', 'mypass');
  $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $db = null;
  } catch (PDOException $e) {
echo "Erreur: ".$e->getMessage()."<br/>";
  die();
 }
试试看{
$db=newpdo('mysql:host=myhost;dbname=advanced registration'、'myuser'、'mypass');
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
$db=null;
}捕获(PDO$e){
echo“Erreur:”.$e->getMessage().“
”; 模具(); }
用户权限如何?
mysql:host=myhost;dbname=advanced registration'
DSN字符串中不能有空格。PDO正在错误地解析它,在
myhost
之后停止,并且连接的用户帐户没有默认数据库的权限。必须为
mysql:host=myhost;dbname=advanced registration'
,我不确定如何处理
advanced registration
中的连字符。“隐私”是什么原因@Michaelbo因为PDO完全忽略了dbname,所以可能会发生不寻常的事情。您正在连接的用户可能没有任何授权,除了预期的架构。我测试了一个带有连字符名称的数据库,如
a-b
,DSN将毫无困难地接受这一点,但在任何其他MySQL上下文中,您都需要反勾引用它
`advanced registration`