Создание таблицы с использованием PDO — не работает

Я знаю, что на эту тему есть несколько тем, но я прошел через них и пока не нашел решения.

У меня проблема в том, что когда я выполняю свой код для создания таблицы с использованием 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(); }

Как я уже сказал, ничего не происходит, таблица не создана.

Любая помощь будет принята с благодарностью! И если это повторяющийся пост, пожалуйста, укажите мне правильное направление, и я удалю этот пост.

0

Решение

Если вы хотите сделать эту работу, сделайте следующее:

Примечание: Это создаст новую запись данных того же 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();
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]