数据库的编码是 gbk 的,在查询的时候把中文(utf-8)转换成 gbk编码就可以了
创新互联建站是一家专注于网站设计、成都网站建设与策划设计,工农网站建设哪家好?创新互联建站做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:工农等地区。工农做网站价格咨询:028-86922220
$nickname=iconv('utf-8','gbk//TRANSLIT',$nickname);
转换后才执行查询
MYSQL的字段名转义使用返引号`,不是单引号,注意上面代码的下面部分:
WHERE '账户'='中文'; //查询中文字报错,数字字母都能正常查询
【账户】是字段名,应使用反引号:
`账户`
【中文】是常量,单双引号都可以,但是要注意你现在的语句是在单引号里面,因此应该转义或者使用双引号,这部分可以修改为:
WHERE 账户="中文"';
另外,如果只是查询中文内容才报错,可能你粘贴代码和原始代码有区别,原始代码没有把字段名放在单引号里面,否则是查不到内容的。查询中文内容报错,一般是中文的编码和网页文件的编码、以及数据库的编码不一致,你这来数据库是UTF8,那么PHP脚本文件、浏览器网页都必须使用UTF-8
你随便输入一个不存在的帐号和密码,然后点登录看,如果也是同样错误,请检查数据库连接,包括密码等,如果连接正确,再检查数据库是否完整,如果均正确,再看PHP代码
上面的程序代码改为:
table align=center width=800 border=1
tr
td产品编号/td
td产品分类/td
td产品货号/td
/tr
?
$sql = "select 产品.pid,分类表.sname,产品.name from 产品,分类表 where 产品.sort=分类表.sid order by 产品.pid"
$rst = @new COM("ADODB.RecordSet")
$rst-Open($sql,$con,1,3)
while(!$rst -EOF){?td?=$rst-Fields["pid"]-Value?/td
td?=$rst-Fields["sname"]-Value?/td
td?=$rst-Fields["name"]-Value?/td
/tr?
$rst-Movenext();}
$con-close();?
/table
通过php判断某个用户是否存在的代码如下:
//拆分发来的信息得到会员卡号br data-filtered="filtered"
$arry=explode("+",$form_Content);br data-filtered="filtered"
$memberid =$arry[1];br data-filtered="filtered"
br data-filtered="filtered"
//连接数据库br data-filtered="filtered"
$link=mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);br data-filtered="filtered"
if($link) {br data-filtered="filtered"
mysql_select_db(SAE_MYSQL_DB,$link); br data-filtered="filtered"
//查询数据br data-filtered="filtered"
$result1=mysql_query("select * from numbers where pmcode = '".$memberid."';");br data-filtered="filtered"
br data-filtered="filtered"
$num_result = mysql_num_rows($result1);br data-filtered="filtered"
if($num_result==1){br data-filtered="filtered"
//$row= $result1-fetch_assoc();br data-filtered="filtered"
$row=mysql_fetch_row($result1);br data-filtered="filtered"
$result_str="您的会员--信息如下:\n\n卡号:$row[pmcode].\n姓名:.$row[names].\n等级:.$row[4].\n积分:$a[5]";br data-filtered="filtered"
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType,$result_str); br data-filtered="filtered"
echo $resultStr
br data-filtered="filtered"
exit;br data-filtered="filtered"}else{br data-filtered="filtered"
$msgType = "text";br data-filtered="filtered"
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType,"--select * from numbers where pmcode = '".$memberid."'"); br data-filtered="filtered"
echo $resultStr
br data-filtered="filtered"
exit;br data-filtered="filtered"
br data-filtered="filtered"}br data-filtered="filtered"
br data-filtered="filtered"}
else{br data-filtered="filtered"
echo "连接数据库失败".mysql_error;br data-filtered="filtered"}
br data-filtered="filtered"
mysql_close($link);br data-filtered="filtered"}
试试我的代码
?PHP
/*
创建ADO连接
*/
$conn = @new COM("ADODB.Connection") or die ("ADO Connection faild.");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("Database1.accdb");
$conn-Open($connstr);
/*
创建记录集查询
*/
$rs = @new COM("ADODB.RecordSet");
$rs-Open("select * from dbo_dirs",$conn,1,3);
/*
循环读取数据
*/
while(!$rs-eof){
echo $rs-Fields["title"]-Value;
echo "br/";
$rs-Movenext(); //将记录集指针下移
}
$rs-close();
?
$MysqlCurd-dql($sql);
$res=0;
$num=mysql_num_rows($res);
这三行的问题。。。
你可以这样试试
$res= $MysqlCurd-dql($sql);
$num=mysql_num_rows($res);