bind_param()问题

 手机用户2502860763 发布于 2023-01-30 14:56

我遇到了bind_param函数的问题.我将在下面发布所有信息.

错误:

Fatal error: Call to a member function bind_param() on a non-object in /home4/lunar/public_html/casino/blogpost.php on line 88

MySQL错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':user, :title, :message, :image, :category, NOW())' at line 1

查询:

    $user = $_COOKIE['user'];
    $title = $_POST['title'];
    $message = $_POST['message'];
    $image = $_POST['image'];
    $category = $_POST['category'];
    $stmt = $mysqli->prepare("INSERT INTO `lunar_casino`.`posts` (`id`, `by`, `title`, `message`, `image`, `category`, `date`) VALUES(NULL, :user, :title, :message, :image, :category, NOW())");
    echo $mysqli->error;
    $stmt->bind_param(":user", $user);
    $stmt->bind_param(":title", $title);
    $stmt->bind_param(":message", $message);
    $stmt->bind_param(":image", $image);
    $stmt->bind_param(":category", $category);
    $stmt->execute();
    if(!$stmt){
      echo "There has been an error with our database! Please contact the website administrator!

"; echo $mysqli->error; } else { echo "You have successfully added a blog post!

"; }

有什么想法为什么会这样?

1 个回答
  • 正如Rocket Hazmat所提到的,你只能使用问号作为绑定参数占位符.你应该做类似的事情:

     $stmt = $mysqli->prepare("INSERT INTO `lunar_casino`.`posts` (`id`, `by`, `title`, `message`, `image`, `category`, `date`) VALUES(NULL, ?, ?, ?, ?, ?, NOW())");
     $stmt->bind_param("sssss", $user, $title, $message, $image, $category);
    

    更多细节:http: //www.php.net/manual/en/mysqli-stmt.bind-param.php

    2023-01-30 14:59 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有