Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 11.06.2019, 13:44   #1
ROM710
Форумчанин
 
Регистрация: 24.02.2014
Сообщений: 67
Репутация: 10
По умолчанию Переход c MySQL на PDO

Здравствуйте, осваиваю расширение PDO, но переписывать код с MySQL не все получается. Читал, что PDO работает со всеми базами . Вопрос : Таблицы в БД надо переписывать ? Подключение переписал, но выдает ошибку - ,, function prepare() on a non-object ,, Пробую запрос простейший -
Код:
$stmt = $dbh->prepare("SELECT * FROM USERS where name = ?");
 if ($stmt->execute(array($_GET['name']))) {
  while ($row = $stmt->fetch()) {
    print_r($row);
  }
не получается.
ROM710 вне форума   Ответить с цитированием
Старый 11.06.2019, 13:54   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,454
Репутация: 2631
По умолчанию

Так кто такой $dbh? Где создается и как?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 11.06.2019, 16:31   #3
ROM710
Форумчанин
 
Регистрация: 24.02.2014
Сообщений: 67
Репутация: 10
По умолчанию

p51x , я так понял, что таблицы в БД переписывать не надо ?
А здесь ,, $dbh,, убрал букву ,, h,, ошибка ушла но код не работает.
Цитата:
Сообщение от p51x Посмотреть сообщение
Так кто такой $dbh? Где создается и как?
Писал от сюда - https://www.php.net/manual/ru/pdo.pr...statements.php
ROM710 вне форума   Ответить с цитированием
Старый 11.06.2019, 16:33   #4
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,454
Репутация: 2631
По умолчанию

Ну так вы пропустили начальные главы мануала https://www.php.net/manual/en/book.pdo.php и побежали пробовать примеры.
Соединение то создавать надо https://www.php.net/manual/en/pdo.connections.php

Цитата:
Сообщение от ROM710 Посмотреть сообщение
p51x , я так понял, что таблицы в БД переписывать не надо ?
А с чего вы взяли, что надо?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 11.06.2019, 19:01   #5
ROM710
Форумчанин
 
Регистрация: 24.02.2014
Сообщений: 67
Репутация: 10
По умолчанию

Подключение по мануалу не работает -
Код:
$dbh = new PDO('mysql:host=localhost;dbname=урок', 'root', '');
Нашел в интернете, работает.
Код:
$dataSource = 'mysql:dbname=урок;host=localhost'; // тип СУБД, хост сервера и имя базы данных
$user = 'root';
$password = '';
$db = new PDO($dataSource, $user, $password); // Подключаемся к базе данных
Запись в бд идет с таким кодом -
Код:
$db->exec("INSERT INTO users (login, password) VALUES (" . $db->quote($login) . ", " . $db->quote($password) . ")");
А сделать проверку не получается, за два дня куча вариантов, пишет - не на объект ?
Как писать я читал - SELECT * FROM.....и т.д но сколько вариантов ! и безрезультатно, вот и подумал может что то в таблице ...... Кто ? подскажите . Это просто урок, просто хочу понять как переписывать на PDO.

Последний раз редактировалось ROM710; 11.06.2019 в 19:07.
ROM710 вне форума   Ответить с цитированием
Старый 11.06.2019, 20:30   #6
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,454
Репутация: 2631
По умолчанию

Цитата:
Сообщение от ROM710 Посмотреть сообщение
Подключение по мануалу не работает -
А mysql на локалхосте? А база называется урок? А пользователь root с пустым паролем?

Цитата:
Сообщение от ROM710 Посмотреть сообщение
Нашел в интернете, работает.
Так тоже самое.

У вас случаем ваш не объект не в функции?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 12.06.2019, 01:25   #7
ROM710
Форумчанин
 
Регистрация: 24.02.2014
Сообщений: 67
Репутация: 10
По умолчанию

root с пустым паролем - потому что Denwer. Остальное сейчас исправлю.
Цитата:
Сообщение от p51x Посмотреть сообщение
У вас случаем ваш не объект не в функции?
p51x А вот это не понял, пожалуйста по подробней.
ROM710 вне форума   Ответить с цитированием
Старый 12.06.2019, 07:41   #8
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,454
Репутация: 2631
По умолчанию

Например, если dbh у вас глобальный. В функцию вы его не передаете и глобал не написали, то возникнет не объект...
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 12.06.2019, 08:15   #9
ROM710
Форумчанин
 
Регистрация: 24.02.2014
Сообщений: 67
Репутация: 10
По умолчанию

Ага, спасибо p51x . А подключение сколько вариантов пробовал - единственное дает запись в БЛ
Код:
$dataSource = 'mysql:dbname=yrok_pdo;host=localhost'; // тип СУБД, хост сервера и имя базы данных
$user = 'root';
$password = '';
$db = new PDO($dataSource, $user = 'root', $password = ''); // Подключаемся к базе данных
ROM710 вне форума   Ответить с цитированием
Старый 12.06.2019, 11:07   #10
ROM710
Форумчанин
 
Регистрация: 24.02.2014
Сообщений: 67
Репутация: 10
По умолчанию

Да еще есть вопрос в тему, кто знает подскажите - Сколько нужно установить драйверов для нормальной работы PDO ?
У меня на данный момент стоит 2 драйвера - PDO drivers :
Mysql поддерживает БД - MySQL 3.x/4.x/5.x
sqlite поддерживает БД - SQLite 3 и SQLite 2
ROM710 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход на другой компонент для работы с mysql Shouldercannon Общие вопросы Delphi 7 17.06.2015 00:13
Mysql+Delphi 2010 Использую libmysql.dll + mysql.pas не могу инф сохранить в базу kGpROGER БД в Delphi 7 30.12.2010 19:27
есть адреси в mysql нужно поиска с AJAX for mysql orter PHP 1 24.09.2010 10:24
обновление в блоге - Работа с MySQL в С++ с использованием библиотеки mysql++ Pblog Обсуждение статей 0 16.08.2009 16:00


23:30.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru