当前位置: 首页 > 知识库问答 >
问题:

PHP致命错误:调用成员函数bind_param()

池永长
2023-03-14

我一直被这个错误困扰,请帮助我这是我的PHP代码致命错误:调用成员函数bind_param()

$statement= $db->prepare("insert into uploaddetails(idnum,title,desc,author,tags,title) values(?,?,?,?,?,?)");


     $id='NULL';
    $title=$_POST['title'];
    $description=$_POST['description'];
     $author=$_POST['author'];
     $tags=$_POST['tags'];
     $file= basename($_FILES["fileToUpload"]["name"]);


    $statement->bind_param( 'isssss', $id,$title, $description,$author,$tags,$file);
    $statement->execute();

    $db->close();
    $statement->close();

共有3个答案

宫晟
2023-03-14
  • 试试这个。你的代码被修改了
$statement= $db->prepare("INSERT INTO uploaddetails (title,desc,author,tags,file) VALUES(?,?,?,?,?)");


 //$id='NULL';
$title=$_POST['title'];
$description=$_POST['description'];
 $author=$_POST['author'];
 $tags=$_POST['tags'];
 $file= $_FILES["fileToUpload"]["name"];


$statement->bind_param( 'isssss',$title, $description,$author,$tags,$file);
$statement->execute();

$db->close();
$statement->close();

//----将文件移动到所需位置。。。

-ID是不需要的,因为它是自动增量,mysql会处理它,-你有错误的文件字段名,这是标题,我把它改为文件(纠正它,如果你有任何其他名称代替)。

詹高畅
2023-03-14

prepare语句由于查询而失败,您需要做的是确保该语句不为false才能执行bind_param,否则请按如下方式查看prepare查询错误:

//Make sure the statement is not false
if($statement !== FALSE)
{
    $statement->bind_param( 'isssss', $id,$title, $description,$author,$tags,$file);
    $statement->execute();

    $db->close();
    $statement->close();
}
//Otherwise check why the prepare statement failed
else
{
    die('prepare() failed: ' . htmlspecialchars($db->error));

}
奚和光
2023-03-14

既然没有人发现这个问题,我就帮你贴出来。您的准备()失败的原因是因为您试图使用MySQL保留字。单词desc是MYSQL中的保留字,这意味着您需要像这样用反勾包装它:

$statement= $db->prepare("insert into uploaddetails(idnum,title,`desc`,author,tags,file) values(?,?,?,?,?,?)");

在插入数据库/使用准备好的语句时,使用适当的实践也很有帮助。

$statement= $db->prepare("insert into uploaddetails(idnum,title,`desc`,author,tags,title) values(?,?,?,?,?,?)");

if($statement !== FALSE) {
    // do the binds...etc
}

file也是一个保留字,我不知道您的实际文件列名称是什么,所以请记住这一点。

 类似资料:
  • 出于某种原因,我得到了。 致命错误:在第19行的D:\xampp\htdocs\tutioncenter\stud-editprofile_process.php中对布尔值调用成员函数bind_param() 我在另一个进程上使用了相同的函数,效果很好。我对编程很陌生,有人能帮我吗? 提前谢谢你!

  • 在这个MySQL查询中,我一直在发牢骚。 假设我有这个: 有了那个- 当它碰到这条线时就会停止,我得到了这个错误: 第386行:

  • 试图创建一个登录屏幕,我得到一个错误 致命错误:在第19行的C:\xampp\htdocs\login\class\Mysql.php中,对非对象调用成员函数准备() Constants.php

  • 这是三个文件 我得到一个错误“Fatal error:Uncattle error:Call to a member function prepare()on null”。这段代码运行在我的localhost上没有问题,但是当它上传到服务器时,我就出现了这个问题。我在本地使用PHP8和xammp软件。我是三年级学生,请帮帮我。 文件database.php: } 文件admin.php

  • 我试图了解PDO的来龙去脉,但我却走进了这堵砖墙。 我目前的PDO课程如下: 我有其余的函数,但对于这个错误,我认为没有必要向您展示其余的函数。 然后我这样调用函数: 我得到了以下错误:致命错误:在null上调用成员函数准备(),当我调用准备函数时会发生这种情况。知道为什么会发生这种情况以及我如何解决这个问题吗?

  • 问题内容: 我正在尝试检查注册中是否已使用电子邮件。当我在学校工作时,它运行良好,但现在突然显示出一个错误: 致命错误:在null上调用成员函数prepare() 我用这个包括 在这里 问题答案: 编辑:( 我想通了)。 我终于弄清楚了为什么您的代码无法正常工作,而我原来的答案已不再适用,我已将其剔除掉。 连接不起作用的原因是因为您从连接参数中省略了常量。 即使您可能没有设置密码,也仍然需要将其作