Ответы пользователя по тегу MySQL
  • В чем ошибка при вывода данных из БД?

    @Hellows
    $sql = $pdo->prepare('SELECT login FROM users WHERE id=?');
    	if ( $sql->execute(array($_GET['name'])) )
    	{
    	  while ($row = $sql->fetchAll())
    	  {
    		 print_r($row);
    	  }
    	}

    Результат prntscr.com/9ru08u
    Либо
    $sql = $pdo->prepare('SELECT login FROM users WHERE id=?');
      $sql->bindValue(1, $_GET['name']);
      $sql->execute();
      $data = $sql->fetch();

    Результат prntscr.com/9ru14y
    Либо
    $sql = $pdo->prepare('SELECT login FROM users WHERE id=:id');
      $sql-> execute(array(':id' => (int)$_GET['name']));
      $data = $sql->fetchAll();

    Результат prntscr.com/9ru95k
    Ответ написан
    2 комментария
  • Вывод данных из БД через pdo?

    @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();
    Ответ написан
    21 комментарий