Использование pdo php в моем классе - PullRequest
2 голосов
/ 08 июля 2011

Я использую pdo php в своем классе

<?php 
class User 
 {
   private $db;
   public function __construct($host, $user, $pass, $db)
   {
    try
     {
      $this->db = new PDO("mysql:host=$host;dbname=$db", $user, $pass); 

     }
    catch (Exception $e)
     {
      die('Error : ' . $e->getMessage());
     }
   } 
  public function modUser($uid, $email)
   {
    $query = $this->db->exec("UPDATE Users SET  Email =:email  WHERE Id_User =:uid");
         $query->bindValue(':email', $email, PDO::PARAM_STR);   
   }
}
?>

Когда я использую пользователя класса следующим образом:

$user = new User('localhost','tester','0000','Agency);

Это работает хорошо, но проблема заключается в том, когда используется файл конфигурации дляподключите базу данных и напишите

$user = new User($host, $user, $pass, $db);

Я получаю сообщение об ошибке:

<b>Warning</b>:  PDO::__construct() expects parameter 2 to be string, object given in <b>C:\wamp\www\new_template-latest\new_template\classes\class.User.php</b> on line <b>13</b><br />
<br />
<b>Fatal error</b>:  Call to a member function exec() on a non-object in <b>C:\wamp\www\new_template-latest\new_template\classes\class.User.php</b> on line <b>140</b><br />

Ответы [ 2 ]

5 голосов
/ 08 июля 2011

Вы пытаетесь присвоить объект new User параметрам PDO. Вам необходимо выбрать новое имя переменной для вашего User объекта или новое имя для вашей $user переменной конфигурации базы данных.

2 голосов
/ 08 июля 2011

Вы передаете переменную $user прямо в конструктор, который теперь является new User объектом.Вы должны хранить строку имени пользователя в переменной с другим именем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...