php access以汉语言作为参数进行数据查询时出现乱码

WBOY
풀어 주다: 2016-06-13 12:29:53
원래의
884명이 탐색했습니다.

php access以中文作为参数进行数据查询时出现乱码。
先上代码:

<?php<br />
<br />
include_once("Conn.php");<br />
<br />
$testJSON=array();<br />
$str = trim($_GET['dept']);  <br />
<br />
$mysql ="  select *,0 as ord from checkpro where ifstop=0 and dept like '*".$str."*'  ";<br />
<br />
echo $mysql; <br />
 <br />
 $rs = $conn->Execute($mysql);<br />
 while(!$rs->EOF) <br />
            { 				<br />
<br />
	$mydept =iconv('gb2312','utf-8',$rs->Fields['dept']->Value);<br />
	$mypro =iconv('gb2312','utf-8',$rs->Fields['pro']->Value);<br />
	$mynote =iconv('gb2312','utf-8',$rs->Fields['note']->Value);<br />
	$mykf =iconv('gb2312','utf-8',$rs->Fields['kf']->Value);<br />
<br />
	echo $mydept;<br />
	<br />
    $testJSON[] = array('dept'=>"".$mydept."","pro"=>"".$mypro."","note"=>"".$mynote."","kf"=>"".$mykf."");   <br />
   	$rs->MoveNext();<br />
      }<br />
  <br />
 foreach ( $testJSON as $key => $value ) { <br />
 <br />
     foreach ( $testJSON[$key] as $key_k => $value_k ) { <br />
        $testJSON[$key][$key_k] = urlencode ($value_k);  <br />
	 }<br />
    }  <br />
   echo urldecode ( json_encode ( $testJSON ) );  <br />
<br />
         /*释放资源*/<br />
         $rs->Close();<br />
      $conn->Close();<br />
      $rs = null;<br />
      $conn = null;<br />
<br />
?> 
로그인 후 복사


如果我在地址栏输入:
http://192.168.0.30:81/fkfs/jsons_a/json_deptchpro.php?dept=办公室
那么就会出现如图的错误,如果参数是英文的就不会。


如果我在地址栏输入:
http://192.168.0.30:81/fkfs/jsons_a/json_deptchpro.php?dept=通用
这时不会出现错误,这个参数得到的结果应该是正确的,但是却不显示任何记录。
问大家,这个该怎么解决,谢谢!$str = iconv('utf-8', 'gbk', trim($_GET['dept']));  
$mysql ="  select *,0 as ord from checkpro where ifstop=0 and dept like '*".$str."*'  ";
$rs = $conn->Execute($mysql);另外
$mysql ="  select *,0 as ord from checkpro where ifstop=0 and dept like '*".$str."*'  ";
为什么是 *
应该
$mysql ="  select *,0 as ord from checkpro where ifstop=0 and dept like '%".$str."%'  ";
才对 错误信息显示:出错行是 21 行
请指出 21 行在哪里!
你贴出的代码中,21 行是 echo $mydept;,显然不是的

你对输出的数据做了编码转换(iconv('gb2312','utf-8',$rs->Fields['dept']->Value))
显然页面是 utf-8 的
那么 $_GET['dept'] 也就是 utf-8 的了
据此,你不可能查找到中文相关的结果

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿