PHP json_encode отображает пустую строку из mySQLi - PullRequest
0 голосов
/ 22 февраля 2019

Я провел некоторое исследование, и оказалось, что это может произойти, если строка не в формате UTF8.

Однако, после многих испытаний, я могу сказать, что он действительно в UTF8 (или, по крайней мере, я знаю со 100% уверенностью, что он в формате ASCII), поэтому ясно, что этого не может быть.

Существуют ли другие квалификаторы, с которыми нужно встретиться json_encode?

Вот мой код;

  for($i=0; $i<$addNovelCount; $i++) {
    $query = "SELECT * 
              FROM `NovelPages` 
              WHERE `NovelID` = '".mysqli_real_escape_string($link, $novelResults[$i])."'";
    $result = mysqli_query($link, $query);

    while ($row = mysqli_fetch_assoc($result)){
       $Novel[] = $row['Image'];
       $NovelID[] = $row['NovelID'];
       $PageID[] = $row['ID'];
    }
  }

  echo '<script>alert("'.json_encode($PageID).'");</script>';

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

вы не можете предупредить json_encoded данные или массив данных, попробуйте console.log результата, надеюсь, что это решит вашу проблему.

 echo '<script>console.log("'.json_encode($PageID).'");</script>';
0 голосов
/ 22 февраля 2019

Я исправил проблему, и она настолько проста и непривлекательна, что я хочу умереть ... Тем более, что я потратил несколько дней на изучение этого!

Оказывается, причина в том, что я помещал json в кавычкикоторый создал двойные кавычки в массиве, нарушая синтаксис.Это сбило меня с толку, потому что я использовал alert как способ отладки реальной вещи, которую я пытался исправить, которая использовала json для помещения переменной php в файл cookie javascript, но вместо ...

$linkSearchCacheJson = json_encode($linkSearchCacheCleared);

echo'
    <script>
        var cookieVar = '.$linkSearchCacheJson.';
        alert(cookieVar);
        document.cookie = "linkSearchCache = " + cookieVar;
    </script>
';

Я делал ...

echo'
    <script>
        document.cookie = "linkSearchCache = '.json_encode($linkSearchCacheCleared).'";
    </script>
';

Что нарушало синтаксис (опять же), потому что он помещал двойные кавычки в двойные кавычки.

Мораль истории;json_encode заключает переменную в двойные кавычки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...