php - 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
如何解决这个问题。
解决方案
$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);
推荐阅读
- amazon-web-services - Terraform 从另一个项目导入 ECS 任务定义
- c++ - UB 是否将本地文字字符串分配给全局范围变量?
- reactjs - Azure React Test 未为 Azure 测试结果报告创建 XML 输出
- google-apps-script - 异常:数据执行未开始,因为数据对象当前处于错误状态。数据源.updateSpec()
- python - 使用 Python 获取畅通区域
- oracle - 通过计划作业上的登录触发器“更改会话”
- node.js - System.err:TypeError:无法读取未定义的属性“拆分”
- c++ - boost::asio 中的自定义处理程序
- perl - Perl 在警告时在正则表达式编译中使用未初始化的值
- html - 抓取 Github 提交作者元素