PHP и MYSQL: Query возвращает значение null в столбце со значениями

У меня проблема с простым SQL-запросом:

SELECT a.idElemento, b.nombre, b.descripcion FROM productos_elementos a INNER JOIN elementos_adicionales b ON a.idElementoAdicional=b.id_elemento_adicional INNER JOIN precio_elemento c ON a.idElemento=c.idElemento WHERE a.idProducto = 1 AND c.idPolitica = 1 

Когда я выполняю этот запрос в своей базе данных, он возвращает:

 IdElemento Nombre Descripcion 1 p1 p1_desc 2 p2 p2_desc 

Однако мой PHP-код возвращает мне следующие значения:

 IdElemento Nombre Descripcion 1 null null 2 null null 

Я не знаю, почему это происходит. Есть идеи? Это код:

 //$query is a string with the querty: SELECT.... $result = $this->conn->query($query); $aux = $result->fetchAll(PDO::FETCH_OBJ); $results_to_send = json_encode($aux); 

Если в настоящий момент я печатаю переменную $ results_to_send, она инициализируется следующим образом:

 [{"idElemento":"1","nombre":null,"descripcion":null},{"idElemento":"2","nombre":null,"descripcion":null}] 

Я использую значения в этом фрагменте кода:

 foreach ($results_to_send as $key => $value){ ... echo $value->idElemento //It prints 1 or 2 ... echo $value->nombre //It is null ...} 

ОБНОВЛЕНИЕ: Наконец, я нашел проблему. Я не знаю, как это решить, но это начало.

Проблема – это строка, хранящаяся в базе данных. Оба столбца имеют символы с акцентами. Например, первая строка: (1, p1_náme, p1_désc). Он возвращает (1, null, null)

Если я изменил его на (1, p1_name, p1_desc), он вернется (1, p1_name, p1_desc).

UDATE 2: проблема решена благодаря замечанию Андрея Маккродта ^^

У меня была та же проблема, которая была вызвана несогласованными кодировками между MySQL MySQL MySQL и базой данных MySQL. Не все кодировки имеют одинаковые символы, которые могут заставить PHP возвращать нуль.

Вы можете сравнить и установить свою кодировку, указав свою кодировку базы данных (в phpmyadmin или в таком запросе) и установите в PHP, используя $ mysqli :: set_charset («short_name») ( http://php.net/manual/en/ mysqli.set-charset.php )

Если вы хотите увидеть, какие кодировки доступны здесь, список. http://dev.mysql.com/doc/refman/5.6/en/charset-charsets.html