使用MAMP的PDO / MySQL连接

时间:2015-03-01 22:31:50

标签: php mysql pdo mamp

我正在尝试编写一个简单的CMS,但在执行PDO连接时遇到了try / catch错误。我很确定在使用PDO时错误来自MAMP,但我不知道如何解决它。我写的代码如下:

包括/ connection.php

<?php

try {
    $dbc = new PDO('myqsl:host=localhost;dbname=cms1', 'root', 'root');
} catch (PDOException $e){
    exit("Database error.");
}
?>

的index.php

<?php

include_once('includes/connection.php');

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div class="container">
        <a href="index.php">CMS</a>

        <ol>
            <li><a href="article.php?id=1">Article title</a> - <small>Posted 10th Jan</small></li>
        </ol>
    </div>
</body>
</html>

请帮帮我。

2 个答案:

答案 0 :(得分:4)

此行包含拼写错误(如果不是拼写错误):

$dbc = new PDO('myqsl:host=localhost
                ^^^^^

应为:

$dbc = new PDO('mysql:host=localhost

您的PDOException还应包含真实的错误消息,而不仅仅是“数据库错误”:

catch(PDOException $e) { print $e->getMessage(); }

,包括:

$dbc->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
连接打开后


参考文献:

答案 1 :(得分:0)

对于任何使用 Laravel 和 MAMP 的人:

您还需要将以下内容添加到您的代码/控制器中(通常在您的班级之外)。

使用 PDO;

示例如下:

<?php

namespace App\Http\Controllers\db_task_related\misc\pdo_related;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

use PDO;

class pdo_test extends Controller
{
    public function run ()
    {
        
        $servername = "localhost";
        $username = "root";
        $password = "root";
        $dbname = "my_db";

        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";
            $conn = null;
        } 
        catch(PDOException $e) {
            echo "Connection failed: " . $e->getMessage();
        }

    }
}

没有'使用PDO;'在某些情况下,您会收到错误

例如: 找不到类“App\Http\Controllers\db_task_related\misc\column_checks\PDO”