PHP MYSQL mysqli_fetch_array()没有结果(外来字符)

时间:2015-01-29 11:43:19

标签: php mysql

我有一个奇怪的。我一直运行mysqli_fetch_array并且我从未见过它之前没有回复结果我可以回显SQL然后将其插入PHPMYADMIN并获得结果集。结果是否与日语相关是否是造成问题的原因?任何帮助表示赞赏,代码如下:

$sqli_peekaboo = "SELECT KanjiElementKEB FROM stedict WHERE KanjiElementKEB =      '" . $line1word . "'";
echo $sqli_peekaboo . '<br>';
$result_sqli_peekaboo = mysqli_query($conn, $sqli_peekaboo);
while($row_peekaboo = mysqli_fetch_array($result_sqli_peekaboo))
{
echo '<br>Result:'.$row_peekaboo['KanjiElementKEB'].'<br>';
}

5 个答案:

答案 0 :(得分:1)

尝试在回显结果之前更改编码,如下所示:

header('content-type: text/html; charset=utf-8');

或者,如果它是HTML页面,那么在head标签中给出:

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

答案 1 :(得分:1)

您可以这样使用,试一试

 SELECT CONVERT(KanjiElementKEB USING utf8 )
 FROM stedict WHERE KanjiElementKEB =      '" . $line1word . "'";

答案 2 :(得分:1)

也许游戏$line1word与它有关,因为它也必然是日本人。我们不知道$line1word来自哪里,但假设它未经过滤,请尝试以下方法:

$sqli_peekaboo = "SELECT KanjiElementKEB FROM stedict WHERE KanjiElementKEB = '" . mysqli_real_escape_string($line1word) . "'";

另外,请问为什么你只选择你已经拥有的东西?

答案 3 :(得分:1)

while($row_peekaboo = mysqli_fetch_array($result_sqli_peekaboo))
{
if(mb_detect_encoding($row_peekaboo['KanjiElementKEB'])=="UTF-8")
{
echo '<br>Result:'.utf8_decode($row_peekaboo['KanjiElementKEB']).'<br>';
 }
}

答案 4 :(得分:0)

感谢您提供的所有建议和建议。在您的帮助下,我设法解决了这个问题: 我改变了连接加密,我之前没有这样做过。

$ conn = mysqli_connect(&#34; localhost&#34;,&#34; ******&#34;,&#34; ******&#34;,&#34 ; stedict&#34;)或mysqli_connect_error(); $ conn-&GT; set_charset(&#34; UTF8&#34);