<?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检查数据库时,没有创建表。我做错了什么?
感谢阅读。
修改 当我将相同的SQL代码直接执行到phpMyAdmin时,它给出了权限被拒绝错误...
我很困惑,因为当我使用web主机Web表单创建用户时,它没有给我选项来授予任何权限,只是为了让这个用户成为数据库所有者 - 这就是我必须做的事情吗?
修改
感谢您的评论。
答案 0 :(得分:1)
试试这个。它应该让你得到你正在寻找的错误,它将告诉你最新情况。
<?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)
") or die(print_r($DBH->errorInfo(), true));
} catch (PDOException $e) {
echo "Could not connect to database.";
$DBH = null;
}
?>
答案 1 :(得分:0)
您需要找到一种方法,从您运行代码的计算机向用户授予创建权限。用户可能只拥有localhost的权限,因此您必须将代码上传到服务器并在那里运行以获得权限。