我在我的连接中设置了错误的变量吗?

问题描述 投票:0回答:3

我需要帮助来解决我无法摆脱的问题。我收到此错误: 无法连接到数据库服务器:SQLSTATE[HY000] [2005] Unknown MySQL server host '$host' (2)

所以,错误检查起作用了,它写出了错误信息。问题是我在脚本中找不到问题/错误。 我希望你能这么好心帮我找到它。我非常确定我的用户详细信息是正确的。是否每次引用 例如,变量是否正确?你能告诉我去哪里和做什么吗?

<?php
$host = 'mysqlhost.no'; //Default database host.
$dbname = 'mydatabasename'; //Default database name.
$username = 'myusername'; //Default database username.
$password = 'mysecretpassword'; //Default database password.
try {
$pdo = new PDO('mysql:host=$host;dbname=$dbname;charset=utf8', '$username', '$password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
return $db;
}
catch (PDOException $e) {
$output = 'Unable to connect to the database server<X>: ' . $e->getMessage();
' in ' .$e->getFile() . ':' . $e->getline();
}

我正在尝试连接到我的 MySQL 数据库,但我不能。我试过最喜欢检查我的用户信息等。我认为我的变量或对它们的引用有问题,但我找不到什么。

mysql connection
3个回答
1
投票

看起来您在连接字符串中使用单引号而不是双引号。单引号字符串中命名的变量不会被扩展,它会按字面意思。

有关详细信息,请参阅此答案:PHP 中单引号和双引号字符串有什么区别?

试试这个,让我们知道它是怎么回事:

new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);

0
投票

在向它添加更复杂的请求之前先尝试这个。

 <?php
        $servername = "localhost";
        $dbname = "mydatabasename";
        $username = "username";
        $password = "password";
        
        try {
          $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
          // set the PDO error mode to exception
          $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
          echo "Connected successfully";
        } catch(PDOException $e) {
          echo "Connection failed: " . $e->getMessage();
        }
        ?>

0
投票

谢谢 marc_s。它现在正在工作。

© www.soinside.com 2019 - 2024. All rights reserved.