我一直在尝试通过下面引用的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托管,如果可以帮助的话。
提前感谢您的回答!
答案 0 :(得分:1)
我认为问题在于您指出localhost
。某些托管服务要求您使用localhost
以外的其他内容。您也许可以尝试127.0.0.1
而不是它。
如果它没有帮助,并且您确定您的用户名,密码和数据库参数都是正确的,我相信您需要向您的托管服务提供商询问正确的mysql服务器地址。
答案 1 :(得分:1)
试试这个
try {
$db = new PDO('mysql:dbname=username_dbName;host=localhost', 'username_dbUser', 'password');
}
答案 2 :(得分:0)
是username_dbName
变量,如$username_dbName
?在这种情况下,您应该使用双引号而不是单引号。
"mysql:localhost;dbname=$username_dbName"
答案 3 :(得分:0)
尝试
$host = 'localhost';
$dbname = 'username_dbName';
$username = 'username_dbUser';
$pw = 'password';
$db = new PDO("mysql:host=$host;dbname=$dbname", $username, $pw);
编辑:纠正错字
答案 4 :(得分: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' => ''