繁体   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