我正在尝试做以下简单的事情:
<?php
header("Content-Type: text/html;charset=UTF-8");
$con=mysqli_connect("localhost","dsdsds","test1234","dsdsds");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM discounts");
while($row = mysqli_fetch_array($result))
{
echo $row['name'] . " " . $row['rate'];
echo "<br>";
}
?>
当我这样做时,我的输出显示为??????。在数据库表中,它正确显示为阿拉伯语。我究竟做错了什么?我也知道我应该添加代码将mysqli设置为utf8,当我这样做时,它会破坏脚本。
if (!$mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
printf("Current character set: %s\n", $mysqli->character_set_name());
}
期待您的支持
答案 0 :(得分:4)
mysqli有两种调用方法的方法。程序和面向对象。您将在文档中看到两种方法。
这是程序风格:
$con=mysqli_connect...
$result = mysqli_query...
$row = mysqli_fetch_array...
这是OO风格:
$mysqli = new mysqli("localhost"...
$mysqli->set_charset("utf8")
$result = $mysqli->query...
$row = $mysqli->fetch_array...
看起来你正在混合风格。将$mysqli->set_charset
更改为$mysqli_set_charset
,然后重试。
如果你想要我的意见,我更喜欢OO风格。