Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: PDO не записывается в базу инфа

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
imedia
Отправлено: 01 Ноября, 2015 - 19:31:39
Post Id



Частый гость


Покинул форум
Сообщений всего: 192
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




Почему не записывается в базу информация
? что не так вроде бы все по мануалу
PHP:
скопировать код в буфер обмена
  1.  
  2. function insert($table_name,$fields,$data){
  3.  
  4. $data = array(
  5.   'username' => $username,
  6.   'password' => sha1($password),
  7.   'full_name' => $full_name,
  8.         'email' => $email,
  9.   'activation_code' => $activation_code,
  10.   'created_at' =>  $created_date,
  11.         'qnt_pass'=>iconv_strlen($password,'UTF-8'),
  12.   );
  13.        foreach($data as $key=>$val){
  14.        $fields[]=$key;
  15.        }
  16. $sql = "INSERT INTO ".$table_name." SET ".parent::pdoSet($fields,$values,$data);
  17. $stm = parent::conn()->prepare($sql);
  18. $stm->execute($values);
  19.  
  20. }
  21.  

расширеный Main.php
PHP:
скопировать код в буфер обмена
  1.  
  2. function conn() { // подключение к БД
  3.   $dsn = "mysql:host=lop.com;dbname=c1lop";
  4.   $user='c1lop';
  5.   $pass='sun';
  6. $opt = array(
  7.   PDO::ATTR_ERRMODE  => PDO::ERRMODE_EXCEPTION,
  8.   PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
  9. );
  10. $pdo = new PDO($dsn, $user, $pass, $opt);
  11.  
  12. }
  13.  
  14. function pdoSet($fields, &$values, $source = array()) {
  15.   $set = '';
  16.   $values = array();
  17.   if (!$source) $source = &$_POST;
  18.   foreach ($fields as $field) {
  19.   if (isset($source[$field])) {
  20.   $set.="`".str_replace("`","``",$field)."`". "=:$field, ";
  21.   $values[$field] = $source[$field];
  22.   }
  23.   }
  24.   return substr($set, 0, -2);
  25. }
  26.  


Fatal error: Call to a member function prepare() on null in /var/www/clients/client1/web28/w eb/protected/models/User.php on line 16ь
(Добавление)
http://phpfaq.ru/pdo#insert

(Отредактировано автором: 01 Ноября, 2015 - 20:34:11)

 
 Top
Panoptik
Отправлено: 01 Ноября, 2015 - 22:29:55
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




conn() должен делать ретурн

PHP:
скопировать код в буфер обмена
  1. $pdo = new PDO($dsn, $user, $pass, $opt);
  2. return $pdo;


-----
Just do it
 
 Top
Faraon-san
Отправлено: 02 Ноября, 2015 - 09:23:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 318
Дата рег-ции: Сент. 2013  


Помог: 8 раз(а)




и каждый раз вызывая этот метод, ты будешь создавать новое подключение к базе, т.е. будет нагрузка на бд.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB