-1

我有一个 php 文件和一个数据库。

<?php
$con=mysqli_connect('localhost','xxxx','xxxxx','joomla30');
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM countries where continent_code='EU'") or die (mysqli_error($con));

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
      $orders[] = array(
          'CountryCode' => $row['countrycode'],
          'CountryName' => $row['countryname'],
          'Select' => $row['Select']
          );
  }

  echo json_encode($orders);
mysqli_close($con);
?>

我从 - http://www.geekality.net/2011/08/21/country-names-continent-names-and-iso-3166-codes-for-mysql/获得了数据库文件

查询 -$query = "SELECT * FROM countries ";不返回任何内容。
查询 -$query = "SELECT * FROM countries where continent_code='AS'";完美运行。
而,$query = "SELECT * FROM countries where continent_code='EU'";不返回任何东西。

同样,'NA','AF' 没有工作,其他工作完美。

注意:上述所有查询在 phpmyadmin 中运行良好。

我不知道这个查询的部分执行的原因。期待一个明确的答案和更正。

更新: 问题解决了。它是一个json问题。我将连接编码为 UTF-8,它现在可以正常工作。

4

3 回答 3

0

你不应该使用本机函数 mysql_ ...应该使用 PDO

Example:

//Connect to DB
$Conexion = new PDO('mysql:dbname=my_db;host=localhost', 'UserDB', 'PasswordDB');

//Prepare query
$Data = $Conexion->prepare("SELECT * FROM countries");

//Execute query
$Data->execute();

//row Count
if($Data->rowCount()>=1) {
    $Array = $Data->fetchAll();

    //Process print data
    foreach ($Array AS $Key => $Value) {
        echo $Value['Column'];
    }
}
else {
    echo 'No Data';
}
于 2013-11-17T04:31:46.137 回答
0

我刚刚添加了mysql_set_charset( 'utf8',$connect); 它现在工作正常。

于 2013-11-21T10:13:15.997 回答
-1

尝试删除尾随空格(注意“国家”)。---> FROM countries "; 我在旧的 PHP 版本中发现了同样的问题。

于 2013-11-13T15:56:59.203 回答