Как вы используете метод php PDO fetchobject () с sqlite для получения поля первичного ключа? - PullRequest
0 голосов
/ 21 ноября 2011
Schema is:
sqlite> .schema posts
CREATE TABLE posts (
id integer primary_key auto_increment,
title text,
content text
);

...

sqlite> .mode line
sqlite> select id,title, content from posts;
     id = 
  title = title
content = content in here

     id = 
  title = a new title
content = new content

.... Весь мой index.php.Предполагается, что это тривиальный пример.

   // Insert a post into the DB
if (isset($_POST['title']) && isset($_POST['content'])) {
   try {
         // Fill in the values
         $title = $_POST['title'];
         $content = $_POST['content'];

         # echo "title=".$title.", content=".$content;   

         // Create a prepared statement
         $stmt = $db->prepare("INSERT INTO posts (title, content) VALUES (:title, :content);");
         $stmt->bindParam(':title', $title);
         $stmt->bindParam(':content', $content);

         $stmt->execute();
      } catch (Exception $e) {
         die ($e);
   }
}

// Get posts from database
try {
   $posts = $db->prepare('SELECT id, title, content FROM posts;');
   $posts->execute();
} catch (Exception $e) {
   die ($e);
}

?>

<h1>Posts - SQLite Example</h1>

<?php while ($post = $posts->fetchObject() ): ?>
<br/>     
<h2><?php echo $post->title ?></h2>
<?php echo $post->content ?>
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?action=delete&id=<?php echo $post->id ?>"><br/>Delete Post</a>
<?php endwhile; ?>

<hr />

<h2>Add new Post</h2>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

<p>
<label for="title">Title:</label>
<input type="text" name="title" />
</p>

<p>
<textarea name="content" rows="8" cols="50"></textarea>

Моя проблема в том, что $ post-> id пусто, но должно было отображаться в переменную $ post в соответствии с документацией для fetchObject ().

Я просто пытаюсь получить первичный ключ отображаемой строки, чтобы добавить ссылку для удаления.

Обратите внимание, что я могу открывать, читать и писать базу данных безвопрос.Кроме того, заголовок и содержимое извлекаются правильно, но я просто застрял при получении поля id из объекта, возвращаемого fetchObject ().

Кажется, что sqlite может никогда ничего не помещать в поле id таблицы.

ОБНОВЛЕНИЕ: Ответ, возможно, был здесь все время.На самом деле это была проблема sqlite, а не php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...