十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、数据库用的是否是Mysql 5.2.X?
创新互联公司长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为江达企业提供专业的网站设计制作、成都网站设计,江达网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。
2、如果是,检查你的变量是否有空值?
3、如果变量有空值,给变量赋值,或者把在数据库里给个默认值,或者直接把字段的NULL设置为“是”
PHP语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。以下是为大家分享的php变量定义方法,供大家参考借鉴,欢迎浏览!
1.定义常量define("CONSTANT", "Hello world.");
常量只能包含标量数据(boolean,integer,float 和 string)。
调用常量时,只需要简单的用名称取得常量的值,而不能加“$”符号,如:echo CONSTANT;
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
2.普通变量$a = "hello";
3.可变变量(使用两个美元符号($))
$$a = "world";
两个变量都被定义了:
$a 的内容是“hello”并且 $hello 的内容是“world”。
因此,可以表述为:
echo "$a ${$a}";或者 echo "$a $hello";它们都会输出:hello world
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。
4.静态变量
在函数内部static $a = 0;
注意:声明中用表达式的结果对其赋值会导致解析错误如static $a =3+3;(error)
静态变量仅在局部函数域中存在(函数内部),函数执行完之后,变量值不会丢失,可用于递归调用
5.全局变量
在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP 自定义 $GLOBALS 数组:
如:$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一个函数域内用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用
global $obj;
注:对于变量的 static 和 global 定义是以 应用 的方式实现的
6.给变量赋值:传地址赋值(简单引用):
$bar = $foo; //加符号到将要赋值的变量前
改动新的变量将影响到原始变量,这种赋值操作更加快速
注意:只有命名变量才可以传地址赋值
注意:如果
$bar = $a;
$bar = $foo;
改变$bar的值只能改变变量foo的值,而不改变a的值(引用改变了)
7.PHP 超全局变量$GLOBALS : 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键标为全局变量的 名称。从 PHP 3 开始存在 $GLOBALS 数组。
$_SERVER : 变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。
$_GET : 经由 HTTP GET 方法提交至脚本的变量。
$_POST : 经由 HTTP POST 方法提交至脚本的变量。
$_COOKIE : 经由 HTTP Cookies 方法提交至脚本的变量。
$_FILES : 经由 HTTP POST 文件上传而提交至脚本的变量。
文件上传表单中要有 enctype="multipart/form-data"
$_ENV : 执行环境提交至脚本的变量。
$_REQUEST :经由 GET,POST 和 COOKIE 机制提交至脚本的.变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义。该数组没有直接模拟 PHP 4.1.0 的早期版本。参见 import_request_variables()。
注意: 自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在于 $_REQUEST 中。
$_SESSION :当前注册给脚本会话的变量。
如何禁用phpinfo():
php.ini中
disable_functions = phpinfo()
重启web服务器。
php中的常量
常量只能用define(常量名,常量值);
常量只能包含标量数据(boolean,integer,float 和 string)。
可以简单的通过指定其名字来取得常量的值,不要在常量前面加上 $ 符号。如果常量名是动态的,也可以用函数
constant() 来读取常量的值。用 get_defined_constants() 可以获得所有已定义的常量列表。
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 "CONSTANT")。此时将发出一个 E_NOTICE 级的错误。参见手册中为什么 $w3sky[bar] 是错误的(除非事先用 define() 将 bar 定义为一个常量)。如果只想检查是否定义了某常量,用 defined() 函数。
常量和变量不同:
* 常量前面没有美元符号($);
* 常量只能用 define() 函数定义,而不能通过赋值语句;
* 常量可以不用理会变量范围的规则而在任何地方定义和访问;
* 常量一旦定义就不能被重新定义或者取消定义;
* 常量的值只能是标量。
定义常量
?PHP
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
?
我理解的肯定也不怎么对,献丑!。
引用不是指针,引用只是引用了内容,而指针就是地址,引用的也是地址。他的内容在地址里边。改变了指针后,指针指向的内容并没变,而如果改变了引用,那么内容就跟着改变了(一般情况)。
用unset解释:
?phpbr
$a
=
1;
$b
=
$a;
unset($a);
?
这里按照指针来理解的话,unset了$a,就是注销$a的地址,而内容‘1’是绑定在$a这个地址上的,那么echo
$b就成了空值,而其实他的值还是1;就是说
unset
一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了
你可以参考php手册,引用的解释
以下来自php手册
引用是什么
在
PHP
中引用意味着用不同的名字访问同一个变量内容。这并不像
C
的指针,替代的是,引用是符号表别名。注意在
PHP
中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。最接近的比喻是
Unix
的文件名和文件本身――变量名是目录条目,而变量内容则是文件本身。引用可以被看作是
Unix
文件系统中的
hardlink。
PHP
的引用允许用两个变量来指向同一个内容。意思是,当这样做时:
?phpbr
$a
=
$b;
?
这意味着
$a
和
$b
指向了同一个变量。
Note:
$a
和
$b
在这里是完全相同的,这并不是
$a
指向了
$b
或者相反,而是
$a
和
$b
指向了同一个地方。
Note:
如果具有引用的数组被拷贝,其值不会解除引用。对于数组传值给函数也是如此。
不行的,变量是要加大括号的,或者使用字符串连接符连接2个字符串。
1如果你的$meal是一个变量、mealnum是字符型的数据的列,就这样写:
$result
=
mysql_query("select
*
from
{$res}
where
mealnum=‘{$meal}’");
2如果你的$meal是一个变量、mealnum是数字型的数据的列,就这样写:
$result
=
mysql_query("select
*
from
{$res}
where
mealnum={$meal}");注意大括号外没单引号。
3如果你的$meal就职一个字符串、mealnum是字符型的数据的列,就这样写:
$result
=
mysql_query("select
*
from
{$res}
where
mealnum=‘\$meal’");
4如果你的$meal就职一个字符串、mealnum是数字型的数据的列,那么就会错误了;
另外:
你已经说了$meal是一个字符型,所以就必须加两个单引号,如果是数字型就不需要单引号。
可以用特殊字符串代替,比如$zhi保存到数据库中后,然后取出来,再用变量去替换$zhi这个字符串即可。