Я знаю, что на эту тему есть несколько тем, но я прошел через них и пока не нашел решения.
У меня проблема в том, что когда я выполняю свой код для создания таблицы с использованием PHP-объекта PDO, ничего не происходит. Я не получаю ошибку, но я также не получаю стол.
Вот мой код:
$pdo = new pdo('mysql:localhost;ijdb','root','');
try {
$sql = 'CREATE TABLE joke
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
joketext TEXT,
jokedate DATE NOT NULL
) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB';
$pdo->exec($sql);
$sql = 'INSERT INTO joke values
(
(1,"jokes","2014-04-22")
)';
$pdo->exec($sql);
}
catch (PDOException $e) { $output = 'Error creating joke table: ' . $e->getMessage();
exit(); }
Как я уже сказал, ничего не происходит, таблица не создана.
Любая помощь будет принята с благодарностью! И если это повторяющийся пост, пожалуйста, укажите мне правильное направление, и я удалю этот пост.
Если вы хотите сделать эту работу, сделайте следующее:
Примечание: Это создаст новую запись данных того же jokes
а также 2014-04-22
,
Если вы не хотите добавлять то же самое, установите новый запрос вместе с отдельным сценарием, используя
(PDO с) подготовленные заявления. и / или установите ваши столбцы, чтобы быть UNIQUE
,
Примечание: 1
следует исключить из INSERT
, так как ваш id
столбец AUTO_INCREMENT
,
try {
$pdo = new pdo('mysql:host=localhost;dbname=your_db', 'username', 'password_if_any');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "CREATE TABLE IF NOT EXISTS joke
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
joketext TEXT,
jokedate DATE NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
INSERT INTO joke (joketext, jokedate) values ('jokes','2014-04-22')";
$pdo->exec($sql);
}
catch (PDOException $e) {
$output = 'Error creating joke table: ' . $e->getMessage();
echo $output;
exit();
}
Других решений пока нет …