我有一个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,现在正常工作。
答案 0 :(得分: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';
}
答案 1 :(得分:0)
我刚刚添加mysql_set_charset( 'utf8',$connect);
它的工作正常。
答案 2 :(得分:-1)
尝试删除尾随空格(请查看“国家/地区”)。 ---&GT;来自国家“; 我在旧的PHP版本中发现了同样的问题。