我使用 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()