[英]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.