簡體   English   中英

MySQLi查詢返回空

[英]MySQLi Query returns empty

我正在嘗試使用從JSON文件獲得的密鑰在mysql數據庫中查找值。 當前,這是代碼:

<?php

$db = mysqli_connect('localhost', 'root', '', 'colorred');
if (mysqli_connect_errno()) {
     die(mysqli_connect_error());
}

$data = file_get_contents('http://paulglushak.com/json/test.json');
$parse = json_decode($data,true);
$time = date('l, d-M-Y H:i:s T', $parse['id']/1000);
$title = $parse['title'];

echo '<br><br>',$time,'<br>';
echo $title,'<br>';
if(!($parse['data']==null)) {
    foreach ($parse['data'] as $code) {
        $query = "SELECT `city` FROM `city_table` WHERE (CONVERT(`code` USING utf8) LIKE '".$code."')";
        echo 'The Query: ' .$query.'<br>';
        $result = mysqli_query($db, $query) or die('Error: '.mysqli_error($db));
        echo '<hr>';
        while($row = mysqli_fetch_assoc($result)) {
            echo $row;
            }
        }
    mysqli_close($db);
}


?>

例如,查詢之一是:

SELECT `city` FROM `city_table` WHERE (CONVERT(`code` USING utf8) LIKE 'נגב 297')

phpmyadmin返回結果,如下所示: http : //paulglushak.com/json/mysql_result.html

但是,PHP代碼返回為空。 我做錯了什么嗎? 我很確定我是。

您的like語句中可能應該包含通配符:

$query = "SELECT `city` FROM `city_table` WHERE (CONVERT(`code` USING utf8) LIKE '%".$code."%')";

但是我不建議循環執行SQL查詢。 最好從循環中構建一個查詢,然后運行一次。

最后,這是一個編碼問題,因此感謝Raptor為我提供了指導。

我嘗試通過添加英文的mysql臨時條目來進行調試,然后直接對其進行查詢,這返回了我想要的值。 這意味着導致問題的是希伯來字母。 該問題已通過添加解決

mysqli_set_charset($db, "utf8");

連接后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM