Извлечение данных из MySQL, проблемы с другим запросом

0

Я извлекаю некоторые данные из базы данных MySQL в формате JSON, но у меня есть странная проблема.

Если я напишу код:

<?php

    //Step1 - Access Database
    ini_set( "display_errors", "1" );
    $db = mysqli_connect('-','-','-','-')
    or exit(mysqli_connect_error());

    //Step2 - Create query and execute it

    $query = "SELECT 'id' FROM 'Tiendas'";
    $result = mysqli_query($db, $query) or exit(mysqli_error($db));

    //Step 3 - Configure results

    $data = array();
    while ( $row = $result->fetch_assoc() ) {
      $data[] = $row;
    }

    //Step 4 - Close connection and send results
    header( 'Content-Type: application/json' );
    mysqli_close($db);
    echo json_encode($data,JSON_UNESCAPED_UNICODE);
?>

Он работает хорошо, но если я пишу:

<?php

    //Step1 - Access Database
    ini_set( "display_errors", "1" );
    $db = mysqli_connect('-','-','-','-')
    or exit(mysqli_connect_error());

    //Step2 - Create query and execute it

    $query = "SELECT 'Tienda' FROM 'Tiendas'";
    $result = mysqli_query($db, $query) or exit(mysqli_error($db));

    //Step 3 - Configure results

    $data = array();
    while ( $row = $result->fetch_assoc() ) {
      $data[] = $row;
    }

    //Step 4 - Close connection and send results
    header( 'Content-Type: application/json' );
    mysqli_close($db);
    echo json_encode($data,JSON_UNESCAPED_UNICODE);
?>

Он ничего не показывает. Ни код ошибки...

Таблица такова:

CREATE TABLE 'Tiendas' (
    'id' INT(11) NOT NULL AUTO_INCREMENT,
    'Usuario' VARCHAR(50) NULL DEFAULT NULL,
    'Tienda' VARCHAR(50) NULL DEFAULT NULL,
    PRIMARY KEY ('id')
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=217
;

Это не работает, если я включаю в инструкцию SELECT строку "Tienda" или "Usuario". Если я включаю только строку "id", она работает хорошо...

  • 0
    Что дает вам var_dump?
  • 0
    Что означает часть cdm в вашем FROM cdm . Tiendas ? Я не знаю, что означает этот синтаксис в FROM запроса, но мне кажется, что вам просто нужно FROM Tiendas в описании вашей таблицы. например, "ВЫБЕРИТЕ Tienda FROM Tiendas "
Показать ещё 8 комментариев
Теги:

1 ответ

0
Лучший ответ

Я исправил его, меняя кодировку...

<?php

    //Step1 - Access Database
    ini_set( "display_errors", "1" );
    $db = mysqli_connect('localhost','fgallegof','qU5v6f5$','cdm')
    or exit(mysqli_connect_error());
    mysqli_set_charset($db, "utf8");

    //Step2 - Create query and execute it

    $query = "SELECT 'Tienda' FROM 'Tiendas'";
    $result = mysqli_query($db, $query) or exit(mysqli_error($db));

    //Step 3 - Configure results

    $data = array();
    while ( $row = $result->fetch_assoc() ) {
      $data[] = $row;
    }

    //var_dump($data);

    //Step 4 - Close connection and send results
    header( 'Content-Type: application/json' );
    mysqli_close($db);
    echo json_encode($data);
?>

Мне нужно добавить mysqli_set_charset($db, "utf8"); и изменить последнюю строку относительно кодирования JSON

Ещё вопросы

Сообщество Overcoder
Наверх
Меню