簡體   English   中英

PHP 代碼將 SELECT 來自一個 MySQL 表,但不是來自另一個

[英]PHP code will SELECT from one MySQL table but not from another

我正在開發一個 Android 應用程序來存儲和記錄我 go 到的咖啡店。 這只是我已經從事了一段時間的一個小型個人項目。 我最近更換了服務器並在上面重建了我的 SQL 服務器。 從那時起,我只能從一個表中獲取 SELECT,而另一個表不返回任何值。

用於運行 GET 命令的 PHP 代碼對於兩個表是相同的,唯一的區別是表名和內容。 該代碼在 mySQL 服務器重建之前也有效。 這讓我相信我的 SQL 服務器有問題,我只是在重建它時從以前的服務器導入了數據。

<?php
//DATABASE CONNECTION INFO LEFT OUT//

$connect = mysqli_connect($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);

if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    die();
}

$stmt = $connect->prepare("
SELECT ShopID
     , IconURL
     , Title
     , Address
     , City
     , State
     , Zip
     , Rating 
   FROM CoffeeShops
 ;");

$stmt->execute();

$stmt->bind_result($ShopID, $IconURL, $Title, $Address, $City, $State, $Zip, $Rating);



$shops = array(); 

while($stmt->fetch()){
    $temp = array();
    $temp['ShopID'] = $ShopID; 
    $temp['IconURL'] = $IconURL; 
    $temp['Title'] = $Title; 
    $temp['Address'] = $Address; 
    $temp['City'] = $City; 
    $temp['State'] = $State; 
    $temp['Zip'] = $Zip; 
    $temp['Rating'] = $Rating; 
    array_push($shops, $temp);
}


echo json_encode($shops);
 mysqli_close($connect);
?>

上面的代碼是針對不會返回數據的表。 其他代碼是相同的,並且可以正常工作,如上所述。

在使用 print_r 顯示一些變量后,我發現問題與 json 編碼有關。 再次使用 print_r 以及 json_last_error() 我發現問題與 UTF-8 編碼有關。

包括以下代碼行最終解決了我的問題。

$shops = mb_convert_encoding($shops, "UTF-8", "auto");

回顧我的應用程序,我似乎有一個特殊的角色,在其中一個標題中,一切都被拋棄了。 考慮到它在我重建 mySQL 服務器之前工作,這也很奇怪。

感謝所有幫助過的人!

暫無
暫無

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

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