【问题标题】:Stumped by Fatal error in PDO? [closed]被 PDO 中的致命错误困扰? [关闭]
【发布时间】:2013-11-12 04:14:56
【问题描述】:

我的网页收到致命错误输出。这是错误:


致命错误:/Users/aaronwilson/Desktop/testing_server/ATOM_CMS/config/setup.php 中的消息“SQLSTATE[HY000] [2005] 未知 MySQL 服务器主机 '$host' (20)”未捕获异常 'PDOException' :14 堆栈跟踪:#0 /Users/aaronwilson/Desktop/testing_server/ATOM_CMS/config/setup.php(14): PDO->__construct('mysql:host=$hos...', 'atomcmsadmin', '**') #1 /Users/aaronwilson/Desktop/testing_server/ATOM_CMS/config/setup.php(22): dbConnect('atomcmsadmin', '**', 'localhost', 'Atom_CMS') #2 /Users/aaronwilson/Desktop/testing_server/ATOM_CMS/index.php(2): include('/Users/aaronwil...') #3 {main} 在 /Users/ 中抛出aaronwilson/Desktop/testing_server/ATOM_CMS/config/setup.php 在第 14 行


这是在我的 Setup.php 页面上触发错误的代码:

<?php ## Setup Document

// host(or location of the database), username, password, database name
//Variables for connecting to your database.
//These variable values come from your hosting account.

error_reporting(E_ALL);
ini_set('display_errors', 1);
require('functions/sandbox.php');

$host = "localhost";
$user = "atomcmsadmin";
$pass = "*******";
$dbname = "Atom_CMS";

//Connecting to your database

function dbConnect($user, $pass, $host, $dbname) {
$dbc = new PDO('mysql:host=$host;dbname=$dbname', $user, $pass);

try {
    global $dbc;
    }
catch (PDOException $e) {
    echo $e->getMessage();
}
}
if (dbConnect($user, $pass, $host, $dbname)) {
print('worked');
}

if ($_GET ['page'] == '') {
$pg = 'home';} 
else {
$pg = $_GET ['page']; }
$page_title = get_title($dbc, $pg);
?>

任何建议将不胜感激.. :)

【问题讨论】:

  • 仔细阅读邮件,上面写着Unknown MySQL server host '$host'。请注意您的 $host 变量没有被插入到正确的名称中?查看您的代码和语法突出显示,找出为什么 new PDO(...) 的参数字符串不起作用。

标签: php html mysql pdo content-management-system


【解决方案1】:

在这一行:

$dbc = new PDO('mysql:host=$host;dbname=$dbname', $user, $pass);

您使用了单引号。 PHP 不会扩展使用单引号的字符串中的变量,因此 PDO 将主机名视为 $host

试试

$dbc = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
               ^                               ^ // note double quotes.

【讨论】:

  • 谢谢你让我试试,我错过了
  • 它现在得到另一个错误:我将发布...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-15
  • 1970-01-01
相关资源
最近更新 更多