加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – SELECT语句不适用于utf-8

发布时间:2020-12-13 22:24:16 所属栏目:PHP教程 来源:网络整理
导读:我有一个select语句应该选择数据库中的所有数据,这些数据等于阿拉伯语输入,我已经将数据库的排序规则设置为utf8_general_ci,并将tables列设置为它们.并在文件中 $conn = mysqli_connect($mysql_host,$mysql_user,$mysql_password,$mysql_database); mysqli_q
我有一个select语句应该选择数据库中的所有数据,这些数据等于阿拉伯语输入,我已经将数据库的排序规则设置为utf8_general_ci,并将tables列设置为它们.并在文件中

$conn = mysqli_connect($mysql_host,$mysql_user,$mysql_password,$mysql_database); 
mysqli_query($conn,"set names 'utf8'");
mysqli_query($conn,"SET character_set_results=utf8");
mb_http_output('UTF-8'); 
mb_internal_encoding('UTF-8');
mb_http_input('UTF-8');
mb_language('uni');
mb_regex_encoding('UTF-8');
ob_start('mb_output_handler');
mb_language('uni'); 
mb_internal_encoding('UTF-8');
mysqli_set_charset($conn,"utf8");

和搜索的代码

$question = $_REQUEST['question'];
$table = $_REQUEST['subject'];
if(empty($question)) {
echo "Type a question!"; }
$qe = mysqli_escape_string($conn,$question);
$full = "SELECT * FROM $table WHERE question LIKE '%$qe%'";
$fullQ = mysqli_query($conn,$full);
if(!$fullQ) {
echo mysqli_error($conn);
}
echo "<meta http-equiv='Content-Type' content='text/html;charset=UTF-8'>";
printf(nl2br("n%un"),mysqli_num_rows($fullQ));
while($row = mysqli_fetch_assoc($fullQ)) {
printf(nl2br("n%sn"),$row['question']);
}

如果我在不使用WHERE的情况下打印所有数据,它也可以工作,并且在使用正确的阿拉伯字符从第一页发送到第二页后,它还会打印SQL语法.但它总是返回0行.

解决方法

如果您的数据库以阿拉伯语保存,则将连接字符串设置为以下内容

$con1 = mysqli_connect($HOSTURL,$DBUSER,$DBPASSWORD,$DBNAME);

    // Check connection
        if (mysqli_connect_errno())
          {
          echo "Failed to connect to MySQL: " . mysqli_connect_error();
            die('');
          }
        mysqli_query($con1,"SET NAMES utf8");   
      //else{echo "Connection Done";}

如果您的数据库没有编码,那么您不必在连接字符串中设置utf8.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读