3 つの空のテーブル (ユーザー、セッション、投稿) をデータベースに挿入する install.php ファイルを作成しようとして、今朝から苦労しています。私が使用しているSQLコードは、PHPMyAdminで注入すると有効ですが、install.phpファイルを実行するとデータベースが空のままになるため、PHPでの処理方法が明らかに間違っています。これが私のコードです:
<?php
try {
$con = new PDO('mysql:host=omitted;dbname=omitted','omitted','');
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$con->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$q="CREATE TABLE posts (
title varchar(150) NOT NULL,
body text NOT NULL,
created varchar(100) NOT NULL,
user varchar(40) NOT NULL,
id int(20) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
UNIQUE KEY id (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
CREATE TABLE sessions (
session_id varchar(40) NOT NULL,
data text NOT NULL,
last_activity int(11) NOT NULL,
PRIMARY KEY (session_id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE users (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(40) NOT NULL,
password varbinary(250) NOT NULL,
email varchar(40) NOT NULL,
salt varchar(20) NOT NULL,
name varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (id),
UNIQUE KEY email (email),
UNIQUE KEY username (username),
UNIQUE KEY id (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ";
$stmt = $con->prepare($q);
$stmt->execute();
echo "success";
} catch (PDOException $e) {
$e->getMessage();
}
?>
私はそれが私の側のばかげた間違いだと思っています(私の最後の3回の頭痛もかなりばかげていたので)が、現時点では本当に理解できません. 何か案は?