php - 为什么prepare语句没有执行?

标签 php mysql

我正在尝试使用绑定(bind)语句将数据插入表中。我所知道的是连接已建立,但准备语句不起作用。我做错了什么吗?

<?php
class connDb{
    private $link;
private $host;
private $user;
private $pass;
private $dbname;
    public function __construct($host, $user, $pass, $dbname){
        $this->host=$host;
        $this->user=$user;
        $this->pass=$pass;
        $this->dbname=$dbname;
        $this->link=mysqli_connect($this->host, $this->user, $this->pass, $this->dbname)
            OR
        die("Not connected to MySQL");
    }
}
?>
<?php
$conn1=new connDb("localhost", "root", "", "dbind");
$xyz=$conn1->prepare("INSERT INTO table1 VALUES(?, ?, ?)");
$x="vikas";
$y="vikas@gmail.com";
$z="123n";
$xyz->bind_param('sss', $x, $y, $z);

$xyz->execute();
?>

最佳答案

您需要使用 MySQLi 连接而不是您自己的对象。

<?php
class connDb{
    private $link;
    private $host;
    private $user;
    private $pass;
    private $dbname;
    public function __construct($host, $user, $pass, $dbname){
        $this->host=$host;
        $this->user=$user;
        $this->pass=$pass;
        $this->dbname=$dbname;
        $this->link=mysqli_connect($this->host, $this->user, $this->pass, $this->dbname)
            OR
        die("Not connected to MySQL");
    }
    public function getLink() {
        return $this->link;
    }
}

$conn1=new connDb("localhost", "root", "", "dbind");
$xyz=$conn1->getLink()->prepare("INSERT INTO table1 VALUES(?, ?, ?)");
$x="vikas";
$y="vikas@gmail.com";
$z="123n";
$xyz->bind_param('sss', $x, $y, $z);

$xyz->execute();
?>

关于php - 为什么prepare语句没有执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40155975/

相关文章:

php - 如何将选项值传递给按钮

php - 遍历 2 行,合并并删除重复项

mysql - 将一个表中的信息加入到另外两个表的 UNION 中......这可能吗?

php - 为什么 PDO 将空白值视为空值?

MySQL 按州按年份汇总总数

php - 如何通过作业 ID 从 Redis 队列中删除作业?

php - Woocommerce 产品插件 按值过滤插件

php - Jquery、ajax 和符号难题

php - 通过 Mysqli 搜索时没有结果

MYSQL优化使用临时;使用文件排序!!! -> 帮助