首页 > 解决方案 > PDO - 如果不存在则创建数据库

问题描述

这是我们的 db.php

$host = 'localhost';
$username = 'root';
$password = '';
try
{
    $conn = new PDO("mysql:host=".$host.", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "CREATE DATABASE IF NOT EXISTS teacher";
    $conn->exec($sql);
    $sql = "use teacher";
    $conn->exec($sql);
}
catch(PDOException $e)
{
    echo "Error".$e->getMessage();
}

..

有一个错误!

解析错误:语法错误,意外的 'CREATE' (T_STRING) in

如何解决这个问题。

标签: phpmysqlpdo

解决方案


$conn = new PDO("mysql:host=".$host.", $username, $password);
                ^           ^       ^
                1           2       3

双引号 1 开始一个字符串。

双引号 2 结束一个字符串。

双引号 3 开始一个字符串。

该字符串直到这里才关闭:

$sql = "CREATE ...
       ^
       4

双引号 4 结束字符串。

这意味着CREATE被解释为 PHP 关键字,而不是字符串的一部分。

提示:您可以将变量放在双引号字符串中。这使得避免这种类型的不平衡引用错误变得更加容易。

$conn = new PDO("mysql:host=$host", $username, $password);

推荐阅读