За последние 24 часа нас посетил 20181 программист и 1006 роботов. Сейчас ищут 356 программистов ...

БД зашквар

Тема в разделе "MySQL", создана пользователем MouseZver, 19 сен 2017.

  1. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    Всем бу, вобщем нубская проблема от которой уже голову шкварит.
    PHP:
    1. $connect = new mysqli( '127.0.0.1','root','','single' );
    2.  
    3.  
    4. var_dump($a = $connect -> prepare( 'SELECT * FROM usraccount' ), $a->execute(), $a->fetch());
    возвращает
    Код (Text):
    1. object(mysqli_stmt)#2 (10) {
    2.   ["affected_rows"]=>
    3.   int(-1)
    4.   ["insert_id"]=>
    5.   int(0)
    6.   ["num_rows"]=>
    7.   int(0)
    8.   ["param_count"]=>
    9.   int(0)
    10.   ["field_count"]=>
    11.   int(8)
    12.   ["errno"]=>
    13.   int(0)
    14.   ["error"]=>
    15.   string(0) ""
    16.   ["error_list"]=>
    17.   array(0) {
    18.   }
    19.   ["sqlstate"]=>
    20.   string(5) "00000"
    21.   ["id"]=>
    22.   int(1)
    23. }
    24. bool(true)
    25. bool(true)
    почему fetch возвращает тру место списка столбцов ? :confused:
     
  2. laszlopv

    laszlopv Активный пользователь

    С нами с:
    26 фев 2017
    Сообщения:
    244
    Симпатии:
    40
    Я думаю, что вам нужно было использовать while Если в таблице больше одного значения. Также не понимаю зачем var_dump() использовать на всей строке.
    Я бы что-то такое попробовал.

    Код (Text):
    1. $connect = new mysqli( '127.0.0.1','root','','single' );
    2. $query = "Ваш запрос";
    3. $res = $connect->query($query);
    4.  
    5. while ( $res=mysqli_fetch_assoc($res)){
    6.     var_dump($res);
    7. }
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    тру результ
    надо
    препаре нид
     
  4. Emilien

    Emilien Активный пользователь

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    Ну так он и должен вернуть тру.
    Код (Text):
    1. bool mysqli_stmt::fetch ( void )
    Для результата нужен ещё bind_result
    http://php.net/manual/ru/mysqli-stmt.fetch
     
    MouseZver нравится это.
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    спс
    --- Добавлено ---
    мл... день уродский в доках проглазел
    PHP:
    1. if ($stmt = $mysqli->prepare($query)) {
    2.  
    3.     /* Запустить выражение */
    4.     $stmt->execute();
    5.  
    6.     /* Определить переменные для результата */
    7.     $stmt->bind_result($name, $code);
     
    Fell-x27 нравится это.