8

PDO を使用してテーブルに行を挿入しています。その行に基づいて新しいページにリダイレクトできるように、新しい行の ID が必要です。

私が使うとき

$id = PDO::lastInsertId();

私は得る

Fatal error: Non-static method PDO::lastInsertId() cannot be called statically in C:\xampp\htdocs\createimage.php on line 16

エラーが発生するphpは次のとおりです。

<?php 

$title = $_POST['title'];
$caption = $_POST['caption'];

$conn = new PDO('mysql:host=localhost;dbname=imagesite', 'root', '');

$stmt = $conn->prepare('INSERT INTO images (id,link,title,caption) VALUES (NULL,:link,:title,:caption)');

$stmt->execute(array(
    'link' => 'fake',
    'title' => $title,
    'caption' => $caption
    ));

$id = PDO::lastInsertId();

header("Location: localhost/image?id=$id");

何が問題なのか誰にもわかりますか?または、私がやろうとしていることを達成する別の方法はありますか?

4

2 に答える 2

11

あなたが探しています:

$conn->lastInsertId()

PHP ドキュメントでは、PDO::lastInsertId() が示されていますが、これは、このメソッドが PDO クラス内にあることを理解するためのものです。ただし、オブジェクトを使用して呼び出す必要があります。

于 2012-09-21T18:47:17.157 に答える
3

クラスから直接呼び出すべきではありません.OOPをもう一度確認することをお勧めします..

変数に PDO クラスのインスタンスを作成したので、作成し$connたオブジェクトから関数を呼び出す必要があります。

$conn->lastInsertId()

于 2012-09-21T18:49:15.327 に答える