php - PDO 对象的问题

标签 php mysql pdo

到目前为止,我正在创建一个成员(member)网站,我只有 2 个类,一个用于连接数据库的类和一个用于管理用户的类

这是数据库的类:

class dbConnect
{
  protected $db_conn;
  public $db_host = '127.0.0.1';
  public $db_user = 'root';
  public $db_pass = '';
  public $db_name = 'db';

  public function connect()
  {
    try
    {
      $this->db_conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this->db_user,$this->db_pass);
      return $this->db_conn;
    }
    catch(PDOException $e) 
    {
      return $e->getMessage();
    }
  }

}

这是用户类,它只有 1 个方法我刚开始这个项目

class ManageUsers
{
  public $link;

  function __construct()
  {
    $db_connection = new dbConnect();
    $this->link = $db_connection->connect();
    return $this->link;
  }

  function registerUsers($username,$email,$password,$ip_adress,$date)
  {
    $query = $this->link->prepare("INSERT INTO `users` (username,email,password,ip_adress,date_joined) VALUES(?,?,?,?,?)");
    $values = [$username,$email,$password,$ip_adress,$date];
    $query->execute($values);
    $confirm = $query->rowCount();
    return $confirm;
  }
}

现在我只是运行一个测试对象来查看所有这些是否正常工作

$test = new ManageUsers();
echo $test->registerUsers('bob','a@a.com','lol','127.0.0.1','2012');

现在我收到错误消息,我正在调用 prepare 语句给一个非对象。老实说,我不明白,因为我是在构造方法中创建对象的。好吧,任何建议都有帮助谢谢!

最佳答案

我认为 PDO 对象是无效的,因为您在对象的方法/属性中使用双引号,在这种情况下您需要使用复杂的字符串表示法("{$object->property}")或使用 .(一个点)

连接字符串

about php strings

$this->db_conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this->db_user,$this->db_pass);

更改为:

$this->db_conn = new PDO("mysql:host={$this->db_host};dbname={$this->db_name}", $this->db_user,$this->db_pass);

关于php - PDO 对象的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21169243/

相关文章:

php - 无法在 php mysql 中设置绑定(bind)参数

php - 使用 PHP 在 phpMyAdmin 数据库中存储表单输入

Java PreparedStatement 和 ON DUPLICATE KEY UPDATE : how do I know whether row was inserted or updated?

mysql - 我需要按照状态 ID 按某种顺序搜索记录

php - Mysql错误: Query was empty

php - 检查 PDO 查询是否返回结果

php - Laravel:从另一个位置调用 Controller 方法

javascript - Symfony 3 Infinite Scroll for Announce

php - PDO 是否关心带有占位符的查询是否使用非关联数组?

php - 如果我确定我在动态语句中使用的某个值是整数,我是否可以避免 SQL 注入(inject)?