SQLite不保存主键

时间:2013-02-21 07:33:43

标签: php sql sqlite pdo auto-increment

以下代码默认情况下不会在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();
}

2 个答案:

答案 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字段。我不确定语法是什么,但如果你查找sql​​ite的CREATE TABLE,你会发现如何将它设置为自动增量字段。