2013-02-21 3 views
1

Следующий код не сохраняет «eventid» в sqlite db по умолчанию. Я могу видеть все строки с эхом, но идентификатор события обязательно ... Любые идеи, почему? Большое спасибо.SQLite не сохраняет первичный ключ

$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(); 
} 

ответ

4

Вы хотите добавить идентификатор события AUTOINCREMENT? и ПЕРВИЧНЫЙ КЛЮЧ?

$db->exec("CREATE TABLE guestbook (eventid INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(55), message TEXT, date DATETIME)"); 
+0

Это была действительно глупая ошибка. Snx. Это работа $ db-> exec ("CREATE TABLE guestbook (eventid INTEGER PRIMARY KEY, имя VARCHAR (55), сообщение TEXT, дата DATETIME)"); Автоинкремент не требуется в sqlite. Thanx. – user2062756

0

EventID не создается как поле AutoInc. Я не уверен, что такое синтаксис, но если вы посмотрите CREATE TABLE для sqlite, вы найдете, как установить его как поле Auto Increment.

Смежные вопросы