php *** 作数据库WHERE语句查询中文报错,无法读取数据?

php *** 作数据库WHERE语句查询中文报错,无法读取数据?,第1张

MYSQL的字段名转义使用返引号`,不是单引号,注意上面代码的下面部分:

WHERE '账户'='中文'//查询中文字报错,数字字母都能正常查询

【账户】是字段名,应使用反引号:

`账户`

【中文】是常量,单双引号都可以,但是要注意你现在的语句是在单引号里面,因此应该转义或者使用双引号,这部分可以修改为:

WHERE 账户="中文"'

另外,如果只是查询中文内容才报错,可能你粘贴代码和原始代码有区别,原始代码没有把字段名放在单引号里面,否则是查不到内容的。查询中文内容报错,一般是中文的编码和网页文件的编码、以及数据库的编码不一致,你这来数据库是UTF8,那么PHP脚本文件、浏览器网页都必须使用UTF-8

试试我的代码

<?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()

?>

错误抑制符去掉错误信息,eval和echo一样并不是函数,不能使用变量函数的方法调用比如:$func = ‘eval’$func()这样的调用就是无效的。它会提示没有eval函数,如果你自己定义这么一个函数也是有问

错误抑制符去掉错误信息,eval和echo一样并不是函数,不能使用变量函数的方法调用比如:

$func = ‘eval’

$func()这样的调用就是无效的。它会提示没有eval函数,如果你自己定义这么一个函数也是有问题的。因为eval是一个关键字。

eval调用和include差不多,如果被包含文件中没有明确return就返回null。如果直接eval我们需要检查的文件会造成被检查的文件内代码被执行,这可不是我们想要的,我们只需要检查一下这个文件的语法是否正确。 我们可以在要检查的文件之前添加return 语句,让代码提前跳出,那么后面的代码就不会执行了。好的,就这么干。代码如下:

<?PHP

if(!function_exists('PHP_check_syntax')) {

function PHP_check_syntax($file_name,

&$error_message = null) {

$file_content = file_get_contents($file_name)

$check_code = "return true?>"

$file_content = $check_code .

$file_content . "<?PHP "

if(!@eval($file_content)) {

$error_message = "file: " .

realpath($file_name) . " have syntax error"

return false

}

return true

}

}

if(!PHP_check_syntax("file.PHP", $msg)) {

echo $msg

}

else {

echo "Woohoo, OK!"

}

<?PHP

foreach:: a =>b

?>

因为Parse error 是没法被 set_error_handler处理函数处理的。这个异常没办法catch到。所以才使用了@来抑制错误。这带来的问题就是我们无法得到详细的错误信息。 不过目前我需要的功能也只是检查语法是否正确。不正确的话重新编译模板文件,就这么简单,至于语法错误,在显示网页的时候自然会看得到。

PHP检查语法错误最好的办法就是这个被遗弃的PHP_check_syntax这个方法回到PHP中。下次再研究下他们是出于什么原因把这个函数去掉的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10826915.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存