Php 获得;可捕获致命错误:类PDOStatement的对象无法转换为字符串;尝试将数据插入数据库时
我只是不知道为什么我会犯这样的错误。专家,请帮帮我。我在谷歌上搜索了一下,也看到了类似的问题,但我不知道我的代码到底出了什么问题——我在这里变得无能为力 我的代码snippest如下所示: 数据库: 型号:Php 获得;可捕获致命错误:类PDOStatement的对象无法转换为字符串;尝试将数据插入数据库时,php,database,oop,pdo,Php,Database,Oop,Pdo,我只是不知道为什么我会犯这样的错误。专家,请帮帮我。我在谷歌上搜索了一下,也看到了类似的问题,但我不知道我的代码到底出了什么问题——我在这里变得无能为力 我的代码snippest如下所示: 数据库: 型号: <?php /** * Base Model Class */ class Model { function __construct() { $this->db = new Database(DB_TYPE,DB_HOST,DB_NAME,DB
<?php
/**
* Base Model Class
*/
class Model
{
function __construct()
{
$this->db = new Database(DB_TYPE,DB_HOST,DB_NAME,DB_USER,DB_PASS);
}
}
你应该谈谈你试图做些什么来修正问题中的错误。此外,您可以考虑将错误移动到问题的正文中,并具有更简洁的标题。我在您的代码>注册< /代码>中没有看到您的连接变量。函数标记了PDO,但您确信您没有使用MySQL,因为MySQL不支持命名占位符。当ECHO准备()语句时,我得到了错误。我不知道我为什么会犯这个错误@是的,我没有使用mysqli,而是使用PDO
<?php
/**
* Base Model Class
*/
class Model
{
function __construct()
{
$this->db = new Database(DB_TYPE,DB_HOST,DB_NAME,DB_USER,DB_PASS);
}
}
<?php
/**
* Auth Controller
*/
class RegistrationController extends Controller
{
function __construct()
{
parent::__construct();
}
public function index()
{
$this->view->render('registration');
}
public function registration()
{
$data = array();
$data['username'] = $_POST['username'];
$data['email'] = $_POST['email'];
$data['contact'] = $_POST['contact'];
$data['password'] = Hash::create('md5', $_POST['password'], HASH_PASSWORD_KEY);
$this->model->registration($data);
}
}
class Registration extends Model
{
function __construct()
{
parent::__construct();
}
public function registration($data)
{
$sql = $this->db->prepare("INSERT INTO users (username, email, contact ,password) VALUES (:username, :email, :contact, :password)");
$sql->execute(array(
':username' => $data['username'],
':email' => $data['email'],
':contact' => $data['contact'],
':password' => $data['password']
));
}
}