【发布时间】:2012-04-11 21:17:28
【问题描述】:
<?php
try {
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$sql = $DBH->exec("
CREATE TABLE `store_config` (
store_name varchar(30),
last_update date)
");
} catch (PDOException $e) {
echo "Could not connect to database.";
$DBH = null;
}
?>
没有抛出 PDOException,可能存在 SQL 错误,但我不知道如何检索该错误,并且当我使用 phpMyAdmin 检查数据库时,没有创建表。我做错了什么?
感谢阅读。
编辑: 当我直接在 phpMyAdmin 中执行相同的 SQL 代码时,它给出了权限被拒绝错误...
1142 - 用户 '$user'@'$my_ip' 拒绝表 'store_config' 的 CREATE 命令
我很困惑,因为当我使用 web 主机 web 表单创建用户时,它没有给我授予任何权限的选项,而只是让这个用户成为数据库所有者 - 这是我必须做的吗?
编辑:
我给了我的用户帐户“DBO 访问权限”,它现在可以工作了(表已创建)。
感谢您的 cmets。
【问题讨论】:
-
如果您只是将 SQL 放入 MySQL 中,它就可以工作,所以它必须是它没有连接或者您的 dbname 不是 MySQL 上实际数据库的名称,或者该用户没有权限到数据库。
-
@thezboe 请在我的帖子中查看编辑 - 我现在有一个错误(权限被拒绝)