致命错误:PHP 中使用 PDO for MySQL 的非静态方法



我使用 PDO 在表中插入一行,我需要新行的 id,以便我可以基于该行重定向到新页面。

当我使用

$id = PDO::lastInsertId();

我得到

Fatal error: Non-static method PDO::lastInsertId() cannot be called statically in C:xampphtdocscreateimage.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");

谁能说出出了什么问题?还是我希望实现的另一种方式?

您正在寻找:

$conn->lastInsertId()

在PHP文档中,他们向您展示了PDO::lastInsertId(),但这是为了理解此方法在PDO类中。但是你需要使用你的对象来调用它。

你不应该直接从类中调用它。我建议您再次查看OOP。

您已经在 $conn 变量中创建了 PDO 类的实例,您应该从您创建的对象调用该函数。

$conn->lastInsertId()

最新更新