首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySQLi -调用未定义的方法::prepare()

MySQLi -调用未定义的方法::prepare()
EN

Stack Overflow用户
提问于 2018-07-11 03:21:51
回答 2查看 2.9K关注 0票数 0

首先,关于这个主题有几个问题要问。然而,最有用的是关于PDO的,我使用的是MySQLi。This one接近了,但我似乎无法让它针对我的情况工作。因此就有了这个问题。

我尝试使用准备好的语句来处理HTML表单中的用户输入。这是在process.php上发布的:

代码语言:javascript
复制
class connect{
    public $connection;

    function db_connect(){
      $this->connection = mysqli_connect(xxx,xxx,xxx,xxx);
      return $this->connection;
    }

$con = new connect();
$con->db_connect();

$keyword = $_POST["value"];
$query = "SELECT * FROM table WHERE title LIKE ?";

$stmt = $con->prepare($query);
$stmt->bind_param("s", $keyword);
$stmt->execute();

这将抛出错误

致命错误:未捕获错误:在process.php:27中调用未定义的方法connect::prepare()

其中,第27行包含$stmt = $con->prepare($query);

我担心这个问题的答案可能简单得可耻,但我们将非常感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-11 03:24:51

$con不包含数据库连接。

它应该是

代码语言:javascript
复制
$connection = $con->db_connect();

db_connect()返回实际的数据库连接

然后使用$connection访问prepare()等mysqli函数

代码语言:javascript
复制
$stmt = $connection->prepare($query); 
票数 6
EN

Stack Overflow用户

发布于 2018-07-11 03:24:57

永远不要将$con->db_connect()的结果赋给变量。$con仍然是类connect。将结果赋给变量$connection = $con->db_connect();并使用$connection变量,或者使用connect()类的公共$connection属性:

代码语言:javascript
复制
$statement = $con->connection->prepare(...);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51272668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档