以下代码默认情况下不会在sqlite db中保存“eventid”。我可以看到所有带回声的行,但事件ID是真实的...任何想法为什么?非常感谢。
$now = time();
try{
if (!file_exists("testgb")){
$db = new PDO('sqlite:testgb');
$db->exec("CREATE TABLE guestbook (eventid INTEGER PRIVATE KEY,name VARCHAR(55), message TEXT, date DATETIME)");
}
$db = new PDO('sqlite:testgb');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->exec("INSERT INTO guestbook (name, message, date) VALUES ('KIRILL', 'Hello!!', datetime($now, 'unixepoch'))");
$res = $db->query("SELECT * FROM guestbook");
foreach ($res as $row){
echo $row['eventid']."<br>";
echo $row['name']."<br>";
echo $row['message']."<br>";
echo $row['date']."<br>";
echo "<hr>";
}
}catch (PDOException $e){
echo $e->getMessage();
}
答案 0 :(得分:4)
您要添加AUTOINCREMENT事件ID吗?和PRIMARY KEY?
$db->exec("CREATE TABLE guestbook (eventid INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(55), message TEXT, date DATETIME)");
答案 1 :(得分:0)
不会将EventID创建为AutoInc字段。我不确定语法是什么,但如果你查找sqlite的CREATE TABLE,你会发现如何将它设置为自动增量字段。