數據庫的編碼是 gbk 的,在查詢的時候把中文(utf-8)轉換成 gbk編碼就可以了
創(chuàng)新互聯建站是一家專注于網站設計、成都網站建設與策劃設計,工農網站建設哪家好?創(chuàng)新互聯建站做網站,專注于網站建設十載,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:工農等地區(qū)。工農做網站價格咨詢:028-86922220
$nickname=iconv('utf-8','gbk//TRANSLIT',$nickname);
轉換后才執(zhí)行查詢
MYSQL的字段名轉義使用返引號`,不是單引號,注意上面代碼的下面部分:
WHERE '賬戶'='中文'; //查詢中文字報錯,數字字母都能正常查詢
【賬戶】是字段名,應使用反引號:
`賬戶`
【中文】是常量,單雙引號都可以,但是要注意你現在的語句是在單引號里面,因此應該轉義或者使用雙引號,這部分可以修改為:
WHERE 賬戶="中文"';
另外,如果只是查詢中文內容才報錯,可能你粘貼代碼和原始代碼有區(qū)別,原始代碼沒有把字段名放在單引號里面,否則是查不到內容的。查詢中文內容報錯,一般是中文的編碼和網頁文件的編碼、以及數據庫的編碼不一致,你這來數據庫是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判斷某個用戶是否存在的代碼如下:
//拆分發(fā)來的信息得到會員卡號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
/*
創(chuàng)建ADO連接
*/
$conn = @new COM("ADODB.Connection") or die ("ADO Connection faild.");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("Database1.accdb");
$conn-Open($connstr);
/*
創(chuàng)建記錄集查詢
*/
$rs = @new COM("ADODB.RecordSet");
$rs-Open("select * from dbo_dirs",$conn,1,3);
/*
循環(huán)讀取數據
*/
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);