mysql_insert_id – 取得上一步 INSERT 操作产生的 ID
int mysql_insert_id ( [resource link_identifier] )
mysql_insert_id() 返回给定的 link_identifier 中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 link_identifier,则使用上一个打开的连接。
如果上一查询没有产生 AUTO_INCREMENT 的值,则 mysql_insert_id() 返回 0。如果需要保存该值以后使用,要确保在产生了值的查询之后立即调用 mysql_insert_id()。
注意: MySQL 中的 SQL 函数 LAST_INSERT_ID() 总是保存着最新产生的 AUTO_INCREMENT 值,并且不会在查询语句之间被重置。
| 警告 |
| mysql_insert_id() 将 MySQL 内部的 C API 函数 mysql_insert_id() 的返回值转换成 long(PHP 中命名为 int)。如果 AUTO_INCREMENT 的列的类型是 BIGINT,则 mysql_insert_id() 返回的值将不正确。可以在 SQL 查询中用 MySQL 内部的 SQL 函数 LAST_INSERT_ID() 来替代。 |
注意: 由于这是一个语言结构而非函数,因此它无法被变量函数调用。
提示: 为了防止程序直接将结果输出到浏览器,可以使用输出控制函数来捕获此函数的输出,并把它们保存到一个例如 string 类型的变量中。
手册上也有一段例子,是为了演示用的:
看了这个例子,相信很容易理解Evaluate a string as PHP code的含义了吧。正因为这样,所以eval()里的参数一定要有”;”结尾,可以让PHP解释器知道这句PHP代码结束了。
上面是最常用的方法,当然也会有一些奇怪的用法:
直接运行第3行的代码肯定是报错,但是……第四行却又是正常的。因为”?>”让PHP代码结束了,整行代码的意思相当于 echo ‘test’;所以可以用类似的方法来输出其他不太适合用echo输出的内容,而又不影响代码的正常执行(比如,加载一个PHP文件,如果直接用echo(file_get_contents(‘aaa.php’)))那么,输出的内容纯粹就是aaa.php的内容。而eval(‘?>’.file_get_contents(‘aaa.php’))则是输出aaa.php执行后的内容。
$_SERVER['argv']
//传递给该脚本的参数。
$_SERVER['argc']
//包含传递给程序的命令行参数的个数(如果运行在命令行模式)。
$_SERVER['GATEWAY_INTERFACE']
//服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。
$_SERVER['SERVER_NAME']
//当前运行脚本所在服务器主机的名称。
$_SERVER['SERVER_SOFTWARE']
//服务器标识的字串,在响应请求时的头部中给出。
$_SERVER['SERVER_PROTOCOL']
//请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
$_SERVER['REQUEST_METHOD']
//访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。
$_SERVER['QUERY_STRING']
//查询(query)的字符串。
$_SERVER['DOCUMENT_ROOT']
//当前运行脚本所在的文档根目录。在服务器配置文件中定义。
$_SERVER['HTTP_ACCEPT']
//当前请求的 Accept: 头部的内容。
$_SERVER['HTTP_ACCEPT_CHARSET']
' //当前请求的 Accept-Charset: 头部的内容。例如:“iso-8859-1,*,utf-8”。
$_SERVER['HTTP_ACCEPT_ENCODING']
'//当前请求的 Accept-Encoding: 头部的内容。例如:“gzip”。
$_SERVER['HTTP_ACCEPT_LANGUAGE']
'//当前请求的 Accept-Language: 头部的内容。例如:“en”。
$_SERVER['HTTP_CONNECTION']
//当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。
$_SERVER['HTTP_HOST']
//当前请求的 Host: 头部的内容。
$_SERVER['HTTP_REFERER']
//链接到当前页面的前一页面的 URL 地址。
$_SERVER['HTTP_USER_AGENT']
//当前请求的 User_Agent: 头部的内容。
$_SERVER['REMOTE_ADDR']
//正在浏览当前页面用户的 IP 地址。
$_SERVER['REMOTE_HOST']
//正在浏览当前页面用户的主机名。
$_SERVER['REMOTE_PORT']
//用户连接到服务器时所使用的端口。
$_SERVER['SCRIPT_FILENAME']
//当前执行脚本的绝对路径名。
$_SERVER['SERVER_ADMIN']
//管理员信息
$_SERVER['SERVER_PORT']
//服务器所使用的端口
$_SERVER['SERVER_SIGNATURE']
//包含服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED']
//当前脚本所在文件系统(不是文档根目录)的基本路径。
$_SERVER['SCRIPT_NAME']
//包含当前脚本的路径。这在页面需要指向自己时非常有用。
$_SERVER['REQUEST_URI']
//访问此页面所需的 URI。例如,“/index.html”。
$_SERVER['PHP_AUTH_USER']
//当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
$_SERVER['PHP_AUTH_PW']
//当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
$_SERVER['AUTH_TYPE']
//当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。
$_SERVER['PHP_SELF']
//当前正在执行脚本的文件名,与 document root相关。
<?php
// 验证密码
$password = “123456″;
?>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>
<title>unzip</title>
<style type=”text/css”>
<!–
body,td{
font-size: 14px;
color: #000000;
}
a {
color: #000066;
text-decoration: none;
}
a:hover {
color: #FF6600;
text-decoration: underline;
}
–>
</style>
</head>
//note 取得动作和菜单变量
$menu = MooGetGPC(‘menu’, ’string’);
$action = MooGetGPC(‘action’, ’string’);
$operation = MooGetGPC(‘operation’, ’string’);
//note 加载需要模块
if(!empty($topMenu[$action]['name']) && file_exists(MOOPHP_ROOT.’/../Moo-admin/’.$action.’.inc.php’)) {
require MOOPHP_ROOT.’/../Moo-admin/’.$action.’.inc.php’;
}
//operation 使用
!defined(‘IN_MOOPHP’) && exit(‘Access Denied’);
$operation = MooGetGPC(‘operation’, ’string’);
$id = MooGetGPC(‘id’);
$operation = in_array($operation, array(‘edit’, ‘del’, ‘list’, ‘adduser’, ‘usermanage’, ‘editusermes’,'editgroup’,'banuser’,'banip’, ‘auditlist’, ‘clear’)) ? $operation : ‘usermanage’;
function writetocache($script, $cachenames, $cachedata = ”, $prefix = ‘cache_’) {
global $authkey;
if(is_array($cachenames) && !$cachedata) {
foreach($cachenames as $name) {
$cachedata .= getcachearray($name, $script);
}
}
$dir = DISCUZ_ROOT.’./forumdata/cache/’;
if(!is_dir($dir)) {
@mkdir($dir, 0777);
}
if($fp = @fopen(“$dir$prefix$script.php”, ‘wb’)) {
fwrite($fp, “<?php\n//Discuz! cache file, DO NOT modify me!”.
”\n//Created: “.date(“M j, Y, G:i”).
”\n//Identify: “.md5($prefix.$script.’.php’.$cachedata.$authkey).”\n\n$cachedata?>”);
fclose($fp);
} else {
exit(‘Can not write to cache files, please check directory ./forumdata/ and ./forumdata/cache/ .’);
}
}
if($_REQUEST['operate'] == “js”){
$cacheFile = DISCUZ_ROOT . ‘./forumdata/cache/cache_counta.php’;
if (($time – @filemtime($cacheFile)) > $cacheTime) {
//查询当天评分总数
$ltime = date(‘H 点 i 分’,time());
$numRows = $db->query(“SELECT time FROM {$tablepre}grade WHERE time>=’$time0′ AND time<=’$time24′”);
$count = $db->num_rows($numRows);
$countbar = ‘$newcountbar = \’<a href=”plugin.php?identifier=counta&module=counta”>截至到’. $ltime .’,总共收到评分’. $count .’个, 点击请看详情</a>\’;’.”\n\n”;
writetocache(“counta”, ”, $countbar);
}
require ($cacheFile);
echo “document.write(‘$newcountbar’)”;
exit();
}
<script type=”text/javascript” src=”plugin.php?identifier=counta&module=counta&operate=js”></script>
empty – 检查一个变量是否为空
bool empty ( mixed var )
如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。
除了当变量没有置值时不产生警告之外,empty() 是 (boolean) var 的反义词。参见转换为布尔值获取更多信息。
|
例 1. empty() 与 isset() 的一个简单比较。
|
注意: 由于这是一个语言结构而非函数,因此它无法被变量函数调用。
注意: empty() 只检测变量,检测任何非变量的东西都将导致解析错误。换句话说,后边的语句将不会起作用: empty(addslashes($name))。
*来自PHP手册
(PHP 3, PHP 4, PHP 5)
isset – 检测变量是否设置
bool isset ( mixed var [, mixed var [, ...]] )
如果 var 存在则返回 TRUE,否则返回 FALSE。
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数。
警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。
<?php
|
这对于数组中的元素也同样有效:
<?php
|
*来自PHP手册

Categories
Tag Cloud
Blog RSS
Comments RSS
Last 50 Posts
Back
Void « Default
Life
Earth
Wind
Water
Fire
Light 