0

我一直在尝试通过下面引用的 PDO 连接连接到我新获得的网站上的 MYSQL 数据库,但它似乎无法正常工作,因为一旦我尝试使用查询或添加它就会失败一个条目。所有信息似乎都是正确的,但是每当我尝试使用任何命令时,如选择或添加条目,它都会给我这个错误:

数组([0] => 3D000 [1] => 1046 [2] => 未选择数据库)1

这是我的连接线:

try {
    $db = new PDO('mysql:localhost;dbname=username_dbName', 'username_dbUser', 'password');
}
catch (Exception $e) {
        die('Erreur : ' . $e->getMessage());
        print 'Unable to Connect. Please contact the website administrator.';
}

这是我用来测试查询是否有效的代码。

$req = $db->prepare('INSERT INTO testTable(number) 
                        VALUES(:number)');
$req->execute(array('number' => 13)) or die(print_r($req->errorInfo()));

显然,我使用实际的登录值进行连接,但它不起作用,我不知道为什么。我的网站由 HostGator 托管,如果有帮助的话。

提前感谢您的回答!

4

5 回答 5

1

我认为问题在于localhost你的指示。一些托管服务要求您使用localhost. 您也许可以尝试127.0.0.1代替它。

如果它没有帮助,并且您确定您的用户名、密码和数据库参数都是正确的,我相信您需要向您的托管服务提供商询问正确的 mysql 服务器地址。

于 2013-08-30T16:24:40.253 回答
1

尝试这个

try {
    $db = new PDO('mysql:dbname=username_dbName;host=localhost', 'username_dbUser', 'password');
}
于 2013-08-30T16:25:06.290 回答
0

在你的真实代码中是username_dbName一个变量,比如$username_dbName?在这种情况下,您应该使用双引号而不是单引号。

"mysql:localhost;dbname=$username_dbName"
于 2013-08-30T16:21:13.290 回答
0

尝试

$host = 'localhost';
$dbname = 'username_dbName';
$username = 'username_dbUser';
$pw = 'password';
$db = new PDO("mysql:host=$host;dbname=$dbname", $username, $pw);

编辑:纠正错字

于 2013-08-30T16:22:37.180 回答
0

尝试这个:

  'driver'    => 'mysql',
  'host'      => '(use the server IP address)',
  'database'  => '(database Name)',
  'username'  => '(database Username)',
  'password'  => '(the password you entered for that database user)',
  'charset'   => 'utf8',
  'collation' => 'utf8_unicode_ci',
  'prefix'    => ''
于 2020-05-14T18:24:29.313 回答