您的位置:首页 > 编程语言 > PHP开发

php数据库访问变慢的一个原因

2015-11-26 09:18 567 查看
中文乱码问题

数据库中存储的内容是一样的

phpmyadmin取出的中文内容,就可以正常显示,但是我自己的Php代码取出来全是问号,我觉得,“一定是我的打开方式不对”

还有就是,在单纯使用php代码访问数据库的过程中,一个明显能让数据库访问卡顿的语句是:

public function selectF($pid){
//mysql_query("SET NAMES 'UTF8'");
//mysql_query("SET CHARACTER SET UTF8");

$link =$this->dbconnect();
$sqlsf = 'select hrp1000.OBJID,hrp1000.STEXT,hrp1000.KOSTL from hrp1000,hrp1001 where hrp1000.OBJID=hrp1001.OBJID and hrp1001.PLVAR=1 and hrp1000.OTYPE=\'O\' and hrp1001.RELAT=2 and hrp1001.RSIGN=\'A\' and hrp1001.SOBID = \''.$pid.'\'';

$this->lastqueryid = mysql_query($sqlsf) or $this->tempshow(LLS('tempdbsqlmis'),'');

$datalist = array();
$cnt=0;
while(($rs = mysql_fetch_array($this->lastqueryid, MYSQL_ASSOC)) != false) {
$datalist[] = $rs;
}

if(is_resource($this->lastqueryid)) {
mysql_free_result($this->lastqueryid);
$this->lastqueryid = null;
}

return $datalist;

}


mysql_query("SET NAMES 'UTF8'");
的出现,让速度明显变慢

下面转载一个代码 首先获取字符串,查看其ascII码,然后判断其编码方式

function is_gb2312($str)
{
for($i=0; $i<strlen($str); $i++) {
$v = ord( $str[$i] );
if( $v > 127) {
if( ($v >= 228) && ($v <= 233) )
{
if(($i+2) >= (strlen($str)- 1)) return true;  // not enough characters
$v1 = ord( $str[$i+1] );
$v2 = ord( $str[$i+2] );
if( ($v1 >= 128) && ($v1 <=191) && ($v2 >=128) && ($v2 <= 191) ) // utf编码
return false;
else
return true;
}
}
}
return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: