Don_Donald
@Don_Donald

Вывод данных из БД через pdo?

В php плаваю около полтора месяца раньше делал через mysqli, но узнал что лучше через PDO
Так проблема в том что не как не могу понять как вывести данные из БД.
В БД таблица
id запись 1
login запись admin
код
$pdo = new PDO("mysql:dbname=user;host=localhost", "root", "");
$sql = $pdo->prepare('SELECT * FROM use WHERE login = :login');
$sql->execute([':login' => $login]);
$data = $sql->fetch(PDO::FETCH_ASSOC);
print $data;

не чего не выводить, помогите пожалуйста новичку, заранее спасибо!
  • Вопрос задан
  • 14832 просмотра
Решения вопроса 1
@Hellows
Как я использую PDO. Создаю файл dbсonnection.php и помещаю следующий код
$host = 'localhost';
	$database = 'dbname';
	$user = 'user';
	$pass = 'root';

	$dsn = "mysql:host=$host;dbname=$database;";
	$options = array(
	    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
	    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
	);
	$pdo = new PDO($dsn, $user, $pass, $options);

Как можно заметить, PDO::FETCH_ASSOC будет по умолчанию для всего. Очень удобно + редактировать проще.
Затем создаю функцию. Вот ваш пример:
function user() {
  global $pdo;
  $stmt = $pdo->query('SELECT * FROM users');
  $data = $stmt->fetchAll();
  return $data;
 }
 $datas = user();
 var_dump($datas);


UPD. №1: Решение задачи. Можно через функцию как выше, можно и без функции. Решайте сами
$stmt = $pdo->query('SELECT * FROM users');
$data = $stmt->fetchAll();
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
romy4
@romy4
Exception handler
включите сперва все логи, может нет соединения к базе и слово use зарезервированное. старайтесь `экранировать` все поля и названия таблиц

пс. через PDO не лучше. она более тупорылая. лучше писать свой враппер и в него инжектить свой спецефический драйвер.
Ответ написан
Попробуйте так
$query = $this->db->prepare("SELECT * FROM model WHERE id=:cat_id");
    $query->execute(array('cat_id'=>$cat_id));
    return $query->fetchAll();
Ответ написан
zona7o
@zona7o
Веб-разработчик
$data - массив? Попробуйтеprint $data['login'], например.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы