我正在使用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");
谁能告诉我哪里出错了?或者另一种实现我想做的事情?
答案 0 :(得分:10)
您正在寻找:
$conn->lastInsertId()
在PHP文档中,它们向您显示PDO :: lastInsertId(),但是要理解此方法是在PDO类中。但是你需要使用你的对象来调用它。
答案 1 :(得分:3)
你不应该直接从课堂上调用它。我建议你再次审查OOP ..
您已在$conn
变量中创建了PDO类的实例,您应该从您创建的对象中调用该函数。
$conn->lastInsertId()