重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
PHP中的变量作用域,PHP中函数变量和全局是完全隔绝的,也就是无法相互访问。
成都创新互联公司公司2013年成立,先为射阳等服务建站,射阳等地企业,进行企业商务咨询服务。为射阳企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
你想在函数内部访问外部变量,你需要这样:
$test = 123;
abc(); //输出123
function abc(){
global $test;
echo($test);
}$test = 123;
abc(); //输出123
function abc(){
global $test;
echo($test);
}
PHP 要尽量不使用全局变量, 全局变量主要使用在项目中顶级的变量 中 比如 项目的目录路径, 数据库信息等 . 如果只是一个模块 中使用还是用参数传进去吧
对于你的代码 , 定义全局变量要接 global
global $count=0;
错误信息的意思是:mysql_fetch_array() 的第一个参数必须是一个资源,但是你传入了一个布尔值。这说明你的mysql_query()执行失败。
推荐你传入mysql_query()的第二个参数:
?php
// $con 表示mysql连接资源
mysql_query("SELECT * FROM language_base", $con);
然后再看看错误信息是什么。
也可以查看一下$con的类型
?php
var_dump($con);
注意你连接mysql没有提供密码,服务器设置运行这么做吗?
在函数前加@符号相当于在执行函数时临时禁用错误报告,即error_reporting(0)。在函数执行结束后自动恢复。一般情况下不推荐使用此函数,因为它会禁用错误日志。
MYSQL的字段名转义使用返引号`,不是单引号,注意上面代码的下面部分:
WHERE '账户'='中文'; //查询中文字报错,数字字母都能正常查询
【账户】是字段名,应使用反引号:
`账户`
【中文】是常量,单双引号都可以,但是要注意你现在的语句是在单引号里面,因此应该转义或者使用双引号,这部分可以修改为:
WHERE 账户="中文"';
另外,如果只是查询中文内容才报错,可能你粘贴代码和原始代码有区别,原始代码没有把字段名放在单引号里面,否则是查不到内容的。查询中文内容报错,一般是中文的编码和网页文件的编码、以及数据库的编码不一致,你这来数据库是UTF8,那么PHP脚本文件、浏览器网页都必须使用UTF-8
建议你换PDO试试,PDO是PHP数据对象的扩展,通过特定驱动可以支持几乎所有的数据库,其中包括用pdo_odbc来连接操作mssql或access等。