gpt4 book ai didi

PHP PDO 调用非对象上的成员函数prepare()

转载 作者:行者123 更新时间:2023-11-30 01:30:29 25 4
gpt4 key购买 nike

我在线遵循的教程让我创建了两个不同的 PHP 文件。这是Database.php 文件:

<?php
class dbConnection
{
protected $db_connection;
public $db_name = "todo";
public $db_user = "root";
public $db_password = "";
public $db_host = "localhost";

function connect()
{
try
{
$this -> db_connection = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this -> db_user, $this -> db_password);

return $this -> db_connection;
}

catch(PDOException $e)
{
return $e -> getMessage();
}
}

}
?>

这是 ManageUsers.php 文件:

<?php
include_once ('Database.php');

class ManageUsers
{
public $link;

function __construct()
{
$dbConnection = new dbConnection();
$this -> link = $dbConnection -> connect();

return $this -> link;
}

function registerUsers($username, $password, $ip_address, $date, $time)
{
$query = $this->link->prepare('INSERT INTO users(username, password, ip_address, reg_date, reg_time) VALUES (?,?,?,?,?)');

$values = array(
$username,
$password,
$ip_address,
$date,
$time
);

$query -> execute($values);
$rowCount = $query -> rowCount();

return $rowCount;
}

}

$users = new ManageUsers();

echo $users -> registerUsers("Bob", "Bob", "127.0.0.1", "07/08/2013", "9:34 A.M.");
?>

它在准备()上一直失败,教程中没有任何内容告诉我原因。任何帮助将不胜感激。

最佳答案

您的数据库连接可能出错,它返回一个字符串而不是 PDO 对象:

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

你必须写得有点不同:

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

此外,请确保正确处理错误(如果有的话,您会自己发现的)。

关于PHP PDO 调用非对象上的成员函数prepare(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17529459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com