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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |