繁体   English   中英

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

[英]Fatal error: Non-static method in PHP using PDO for MySQL

我正在使用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");

任何人都能说出出了什么问题吗? 还是另一种方法来实现我想做的事情?

您正在寻找:

$conn->lastInsertId()

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

你不应该直接从课堂上调用..我建议你再次审查OOP ..

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

$conn->lastInsertId()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM