PHP函数库(other),php函数库other
PHP函数库(other),php函数库other
Session函数:- session_abort — Discard session array changes and finish session
返回值:没有你返回值。
- session_cache_expire — 返回当前缓存的到期时间
session_cache_expire() 返回 session.cache_expire 的设定值。
请求开始的时候,缓存到期时间会被重置为 180,并且保存在 session.cache_expire 配置项中。 因此,针对每个请求,需要在 session_start() 函数调用之前 调用 session_cache_expire() 来设置缓存到期时间。参数:
new_cache_expire
如果给定 new_cache_expire
,就使用 new_cache_expire
的值设置当前缓存到期时间。
返回值:返回 session.cache_expire 的当前设置值, 以分钟为单位,默认值是 180 (分钟)。 /* 设置缓存限制为 “private” */Note: 仅在 session.cache_limiter 的设置值 不是 nocache 的时候, 才可以设置
new_cache_expire
参数。
session_cache_limiter('private');
$cache_limiter = session_cache_limiter();
/* 设置缓存过期时间为 30 分钟 */
session_cache_expire(30);
$cache_expire = session_cache_expire();
/* 开始会话 */
session_start();
echo "The cache limiter is now set to $cache_limiter
";
echo "The cached session pages expire after $cache_expire minutes";
?>
- session_cache_limiter — 读取/设置缓存限制器
cache_limiter
如果指定了 cache_limiter
参数, 将使用指定值作为缓存限制器的值。
值 | 发送的响应头 |
---|---|
public |
Expires:(根据 session.cache_expire 的设定计算得出)
Cache-Control: public, max-age=(根据 session.cache_expire 的设定计算得出)
Last-Modified:(会话最后保存时间)
|
private_no_expire |
Cache-Control: private, max-age=(根据 session.cache_expire 的设定计算得出), pre-check=(根据 session.cache_expire 的设定计算得出)
Last-Modified: (会话最后保存时间)
|
private |
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private, max-age=(根据 session.cache_expire 的设定计算得出), pre-check=(根据 session.cache_expire 的设定计算得出)
Last-Modified: (会话最后保存时间)
|
nocache |
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
|
session_cache_limiter('private');
$cache_limiter = session_cache_limiter();
echo "The cache limiter is now set to $cache_limiter
";
?>
- session_commit — session_write_close 的别名
- session_decode — 解码会话数据
$data
参数中的已经序列化的会话数据进行解码, 并且使用解码后的数据填充 $_SESSION 超级全局变量。参数:data
编码后的数据
返回值:成功时返回TRUE
, 或者在失败时返回 FALSE
。
- session_destroy — 销毁一个会话中的全部数据
session_destroy() 销毁当前会话中的全部数据, 但是不会重置当前会话所关联的全局变量, 也不会重置会话 cookie。 如果需要再次使用会话变量, 必须重新调用 session_start() 函数。
为了彻底销毁会话,比如在用户退出登录的时候,必须同时重置会话 ID。 如果是通过 cookie 方式传送会话 ID 的,那么同时也需要 调用 setcookie() 函数来 删除客户端的会话 cookie。
返回值:成功时返回TRUE
, 或者在失败时返回 FALSE
。
// 初始化会话。// 如果要使用会话,别忘了现在就调用:
session_start();
// 重置会话中的所有变量
$_SESSION = array();
// 如果要清理的更彻底,那么同时删除会话 cookie
// 注意:这样不但销毁了会话中的数据,还同时销毁了会话本身
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// 最后,销毁会话
session_destroy();
?>
- session_encode — 将当前会话数据编码为一个字符串
返回值:返回当前会话编码后的内容。
- session_get_cookie_params — 获取会话 cookie 参数
返回值:返回一个包含当前会话 cookie 信息的数组:
- "lifetime" - cookie 的生命周期,以秒为单位。
- "path" - cookie 的访问路径。
- "domain" - cookie 的域。
- "secure" - 仅在使用安全连接时发送 cookie。
- "httponly" - 只能通过 http 协议访问 cookie
- session_id — 获取/设置当前会话 ID
id
如果指定了 id
参数的值, 则使用指定值作为会话 ID。 必须在调用 session_start() 函数之前调用 session_id()函数。 不同的会话管理器对于会话 ID 中可以使用的字符有不同的限制。 例如文件会话管理器仅允许会话 ID 中使用以下字符:a-z A-Z 0-9 , (逗号)和 - (减号)
返回值:session_id() 返回当前会话ID。 如果当前没有会话,则返回空字符串("")。Note: 如果使用 cookie 方式传送会话 ID,并且指定了
id
参数, 在调用 session_start() 之后都会向客户端发送新的 cookie, 无论当前的会话 ID 和新指定的会话 ID 是否相同。
- session_is_registered — 检查变量是否在会话中已经注册
name
变量名称。
返回值:session_is_registered() 返回TRUE
则表示 name
变量已经在当前会话中注册使用,否则返回 FALSE
。
- session_module_name — 获取/设置会话模块名称
module
如果指定 module
参数,则使用 指定值作为会话模块。
- session_name — 读取/设置会话名称
name
参数, session_name() 函数会更新会话名称, 并返回 原来的 会话名称。参数:name
用在 cookie 或者 URL 中的会话名称, 例如:PHPSESSID。 只能使用字母和数字作为会话名称,建议尽可能的短一些, 并且是望文知意的名字(对于启用了 cookie 警告的用户来说,方便其判断是否要允许此 cookie)。 如果指定了 name
参数, 那么当前会话也会使用指定值作为名称。
会话名称至少需要一个字母,不能全部都使用数字, 否则,每次都会生成一个新的会话 ID。
返回值:返回当前会话名称。 /* 设置会话名称为 WebsiteID */$previous_name = session_name("WebsiteID");
echo "The previous session name was $previous_name
";
?>
- session_regenerate_id — 使用新生成的会话 ID 更新现有会话 ID
delete_old_session
是否删除原 ID 所关联的会话存储文件。
返回值:成功时返回TRUE
, 或者在失败时返回 FALSE
。
session_start();$old_sessionid = session_id();
session_regenerate_id();
$new_sessionid = session_id();
echo "Old Session: $old_sessionid
";
echo "New Session: $new_sessionid
";
print_r($_SESSION);
?>
- session_register_shutdown — 关闭会话
此函数没有参数。
返回值:没有返回值。
- session_register — Register one or more global variables with the current session
$barney = "A big purple dinosaur.";
session_register("barney");
// Use of $_SESSION is preferred, as of PHP 4.1.0
$_SESSION["zim"] = "An invader from another planet.";
// The old way was to use $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants.";
?>
- session_reset — Re-initialize session array with original values
没有返回值
- session_save_path — 读取/设置当前会话的保存路径
path
指定会话数据保存的路径。 必须在调用 session_start() 函数之前调用 session_save_path() 函数。
Note:
返回值:返回保存会话数据的路径。在某些操作系统上,建议使用可以高效处理 大量小尺寸文件的文件系统上的路径来保存会话数据。 例如,在 Linux 平台上,对于会话数据保存的工作而言,reiserfs 文件系统会比 ext2fs 文件系统能够提供更好的性能。
- session_set_cookie_params — 设置会话 cookie 参数
Cookie 参数可以在 php.ini 文件中定义,本函数仅在当前脚本执行过程中有效。 因此,如果要通过函数修改 cookie 参数,需要对每个请求都要 在调用 session_start() 函数之前调用 session_set_cookie_params() 函数。
本函数会修改运行期 ini 设置值, 可以通过 ini_get() 函数获取这些值。参数:
lifetime
Cookie 的 生命周期,以秒为单位。
path
此 cookie 的有效 路径。 on the domain where 设置为“/”表示对于本域上所有的路径此 cookie 都可用。
domain
Cookie 的作用 域。 例如:“www.php.net”。 如果要让 cookie 在所有的子域中都可用,此参数必须以点(.)开头,例如:“.php.net”。
secure
设置为 TRUE
表示 cookie 仅在使用 安全 链接时可用。
httponly
设置为 TRUE
表示 PHP 发送 cookie 的时候会使用 httponly 标记。
- session_set_save_handler — 设置用户自定义会话存储函数
返回值:成功时返回
TRUE
, 或者在失败时返回 FALSE
。
这里使用了 session_set_save_handler() 函数的 OOP 原型 并且使用第二个参数来注册 shutdown 函数。 当将对象注册为会话保存管理器时,建议使用这种方式。
class MySessionHandler implements SessionHandlerInterface{
// 在这里实现接口
}
$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();
// 现在可以使用 $_SESSION 保存以及获取数据了
- session_start — 启动新会话或者重用现有会话
返回值:成功开始会话返回
TRUE
,反之返回 FALSE
- session_status — Returns the current session status
返回值:
PHP_SESSION_DISABLED
if sessions are disabled.PHP_SESSION_NONE
if sessions are enabled, but none exists.PHP_SESSION_ACTIVE
if sessions are enabled, and one exists.- session_unregister — Unregister a global variable from the current session
name
from the current session.- session_unset — Free all session variables
返回值:没有返回值。
- session_write_close — Write session data and end session
返回值:没有返回值。 ---------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------- Classes/Object函数:
- __autoload — 尝试加载未定义的类
class
待加载的类名。
返回值:没有返回值。- call_user_method_array — 调用一个用户方法,同时传递参数数组(已废弃)
- call_user_method — 对特定对象调用用户方法(已废弃)
- class_alias — 为一个类创建别名
original
创建别名 alias
。 这个别名类和原有的类完全相同。参数:original
原有的类。
alias
类的别名。
autoload
如果原始类没有加载,是否使用自动加载(autoload)。
返回值:成功时返回TRUE
, 或者在失败时返回 FALSE
。
class foo { }class_alias('foo', 'bar');
$a = new foo;
$b = new bar;
// the objects are the same
var_dump($a == $b, $a === $b); //bool(true) bool(false)
var_dump($a instanceof $b); //bool(true)
// the classes are the same
var_dump($a instanceof foo); //bool(true)
var_dump($a instanceof bar); //bool(true)
var_dump($b instanceof foo); //bool(true)
var_dump($b instanceof bar); //bool(true)
?>
- class_exists — 检查类是否已定义
class_name
类名。名字的匹配是大小写不敏感的。
autoload
是否默认调用 __autoload。
返回值:如果由class_name
所指的类已经定义,此函数返回 TRUE
,否则返回 FALSE
。
class_exists() 例子:// 使用前检查类是否存在
if (class_exists('MyClass')) {
$myclass = new MyClass();
}
?>
autoload
parameter 例子:function __autoload($class){
include($class . '.php');
// Check to see whether the include declared the class
if (!class_exists($class, false)) {
trigger_error("Unable to load class: $class", E_USER_WARNING);
}
}
if (class_exists('MyClass')) {
$myclass = new MyClass();
}
?>
- get_called_class — 后期静态绑定("Late Static Binding")类的名称
返回类的名称,如果不是在类中调用则返回
FALSE
。class foo {
static public function test() {
var_dump(get_called_class());
}
}
class bar extends foo {
}
foo::test();
bar::test();
?>
string(3) "foo" string(3) "bar"
- get_class_methods — 返回由类的方法名组成的数组
class_name
类名或者对象实例。
返回值:返回由class_name
指定的类中定义的方法名所组成的数组。如果出错,则返回 NULL
。class myclass {
// constructor
function myclass(){
return(true);
}
// method 1
function myfunc1(){
return(true);
}
// method 2
function myfunc2(){
return(true);
}
}
$class_methods = get_class_methods('myclass');
// or
$class_methods = get_class_methods(new myclass());
foreach ($class_methods as $method_name) {
echo "$method_name\n";
}
?>
myclass myfunc1 myfunc2
- get_class_vars — 返回由类的默认属性组成的数组
varname => value
的形式存在。参数:class_name
The class name
返回值:Returns an associative array of declared properties visible from the current scope, with their default value. The resulting array elements are in the form of varname => value. In case of an error, it returnsFALSE
.
get_class_vars() example:class myclass {
var $var1; // this has no default value...
var $var2 = "xyz";
var $var3 = 100;
private $var4; // PHP 5
// constructor
function myclass() {
// change some properties
$this->var1 = "foo";
$this->var2 = "bar";
return true;
}
}
$my_class = new myclass();
$class_vars = get_class_vars(get_class($my_class));
foreach ($class_vars as $name => $value) {
echo "$name : $value\n";
}
?>
// Before PHP 4.2.0 var2 : xyz var3 : 100 // As of PHP 4.2.0 var1 : var2 : xyz var3 : 100get_class_vars() and scoping behaviour:
function format($array){
return implode('|', array_keys($array)) . "\r\n";
}
class TestCase{
public $a = 1;
protected $b = 2;
private $c = 3;
public static function expose(){
echo format(get_class_vars(__CLASS__));
}
}
TestCase::expose();
echo format(get_class_vars('TestCase'));
?>
// 5.0.0 a| * b| TestCase c a| * b| TestCase c // 5.0.1 - 5.0.2 a|b|c a|b|c // 5.0.3 + a|b|c a
- get_class — 返回对象的类名
obj
所属类的名字。如果 obj
不是一个对象则返回 FALSE
。使用 get_class():
class foo {
function foo(){
// implements some logic
}
function name(){
echo "My name is " , get_class($this) , "\n";
}
}
// create an object
$bar = new foo();
// external call
echo "Its name is " , get_class($bar) , "\n";
// internal call
$bar->name();
?>
Its name is foo My name is foo参数:
object
The tested object. This parameter may be omitted when inside a class.
Using get_class() in superclass:
abstract class bar {
public function __construct(){
var_dump(get_class($this));
var_dump(get_class());
}
}
class foo extends bar {
}
new foo;
?>
string(3) "foo" string(3) "bar"
- get_declared_classes — 返回由已定义类的名字所组成的数组
?>
Array
(
[0] => stdClass
[1] => __PHP_Incomplete_Class
[2] => Directory
)
- get_declared_interfaces — 返回一个数组包含所有已声明的接口
?>
Array ( [0] => Traversable [1] => IteratorAggregate [2] => Iterator [3] => ArrayAccess [4] => reflector [5] => RecursiveIterator [6] => SeekableIterator )
- get_declared_traits — 返回所有已定义的 traits 的数组
NULL
。
- get_object_vars — 返回由对象属性组成的关联数组
obj
指定的对象中定义的属性组成的关联数组。class Point2D {
var $x, $y;
var $label;
function Point2D($x, $y){
$this->x = $x;
$this->y = $y;
}
function setLabel($label){
$this->label = $label;
}
function getPoint(){
return array("x" => $this->x,
"y" => $this->y,
"label" => $this->label);
}
}
// "$label" is declared but not defined
$p1 = new Point2D(1.233, 3.445);
print_r(get_object_vars($p1));
$p1->setLabel("point #1");
print_r(get_object_vars($p1));
?>
Array ( [x] => 1.233 [y] => 3.445 [label] => ) Array ( [x] => 1.233 [y] => 3.445 [label] => point #1 )
- get_parent_class — 返回对象或类的父类名
如果 obj
是对象,则返回对象实例 obj
所属类的父类名。
如果 obj
是字符串,则返回以此字符串为名的类的父类名。此功能是在 PHP 4.0.5 中增加的。
function dad(){
// implements some logic
}
}
class child extends dad {
function child(){
echo "I'm " , get_parent_class($this) , "'s son\n";
}
}
class child2 extends dad {
function child2(){
echo "I'm " , get_parent_class('child2') , "'s son too\n";
}
}
$foo = new child();
$bar = new child2();
?>
I'm dad's son I'm dad's son too
参数:object
The tested object or class name
- interface_exists — 检查接口是否已被定义
interface_name
接口名。
autoload
默认是否调用 __autoload。
返回值:本函数在由interface_name
给出的接口已定义时返回 TRUE
,否则返回 FALSE
。
// 在尝试使用前先检查接口是否存在if (interface_exists('MyInterface')) {
class MyClass implements MyInterface{
// Methods
}
}
?>
- is_a — 如果对象属于该类或该类是此对象的父类则返回 TRUE
object
是该类或该类是此对象的父类。参数:object
The tested object
class_name
The class name
allow_string
If this parameter set to FALSE
, string class name as object
is not allowed. This also prevents from calling autoloader if the class doesn't exist.
TRUE
if the object is of this class or has this class as one of its parents, FALSE
otherwise.
is_a() 例子:// define a class
class WidgetFactory{
var $oink = 'moo';
}
// create a new object
$WF = new WidgetFactory();
if (is_a($WF, 'WidgetFactory')) {
echo "yes, \$WF is still a WidgetFactory\n";
}
?>
在 PHP 5 中使用 instanceof 运算符:
if ($WF instanceof WidgetFactory) {
echo 'Yes, $WF is a WidgetFactory';
}
?>
- is_subclass_of — 如果此对象是该类的子类,则返回 TRUE
object
所属类是类 class_name
的子类,则返回 TRUE
,否则返回 FALSE
。参数:object
A class name or an object instance
class_name
The class name
allow_string
If this parameter set to false, string class name as object
is not allowed. This also prevents from calling autoloader if the class doesn't exist.
TRUE
if the object object
, belongs to a class which is a subclass of class_name
, FALSE
otherwise.
// define a classclass WidgetFactory{
var $oink = 'moo';
}
// define a child class
class WidgetFactory_Child extends WidgetFactory{
var $oink = 'oink';
}
// create a new object
$WF = new WidgetFactory();
$WFC = new WidgetFactory_Child();
if (is_subclass_of($WFC, 'WidgetFactory')) {
echo "yes, $WFC is a subclass of WidgetFactory\n";
} else {
echo "no, $WFC is not a subclass of WidgetFactory\n";
}
if (is_subclass_of($WF, 'WidgetFactory')) {
echo "yes, $WF is a subclass of WidgetFactory\n";
} else {
echo "no, $WF is not a subclass of WidgetFactory\n";
}
// usable only since PHP 5.0.3
if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
echo "yes, WidgetFactory_Child is a subclass of WidgetFactory\n";
} else {
echo "no, WidgetFactory_Child is not a subclass of WidgetFactory\n";
}
?>
yes, $WFC is a subclass of WidgetFactory no, $WF is not a subclass of WidgetFactory yes, WidgetFactory_Child is a subclass of WidgetFactory
- method_exists — 检查类的方法是否存在
object
中。参数:object
对象示例或者类名。
method_name
方法名。
返回值:如果method_name
所指的方法在 object
所指的对象类中已定义,则返回 TRUE
,否则返回 FALSE
。
method_exists() 例子:$directory = new Directory('.');
var_dump(method_exists($directory,'read')); //bool(true)
?>
Static method_exists() 例子:
var_dump(method_exists('Directory','read')); //bool(true)
?>
- property_exists — 检查对象或类是否具有该属性
property
是否存在于指定的类中(以及是否能在当前范围内访问)。参数:class
字符串形式的类名或要检查的类的一个对象
property
属性的名字
返回值:如果该属性存在则返回TRUE
,如果不存在则返回 FALSE
,出错返回 NULL
。
class myClass {public $mine;
private $xpto;
static protected $test;
static function test() {
var_dump(property_exists('myClass', 'xpto')); //true
}
}
var_dump(property_exists('myClass', 'mine')); //true
var_dump(property_exists(new myClass, 'mine')); //true
var_dump(property_exists('myClass', 'xpto')); //true, as of PHP 5.3.0
var_dump(property_exists('myClass', 'bar')); //false
var_dump(property_exists('myClass', 'test')); //true, as of PHP 5.3.0
myClass::test();
?>
- trait_exists — 检查指定的 trait 是否存在
traitname
待检查的 trait 的名称
autoload
如果尚未加载,是否使用自动加载(autoload)。
返回值:如果 trait 存在返回TRUE
,不存在则返回 FALSE
。发生错误的时候返回 NULL
。
---------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------- MySQL函数:
- mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数
link_identifier
关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。参数:link_identifier
MySQL 连接。如不指定连接标识,则使用由 mysql_connect() 最近打开的连接。如果没有找到该连接,会尝试不带参数调用 mysql_connect() 来创建。如没有找到连接或无法建立连接,则会生成 E_WARNING
级别的错误。
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
/* 本例返回被删除记录的准确数目 */
mysql_query('DELETE FROM mytable WHERE id printf("Records deleted: %d\n", mysql_affected_rows());
/* 对于非真值的 WHERE 子句,应返回 0 */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Records deleted: %d\n", mysql_affected_rows());
?>
Records deleted: 10 Records deleted: 0使用事务处理的 mysql_affected_rows() 例子:
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
/* Update records */
mysql_query("UPDATE mytable SET used=1 WHERE id printf ("Updated records: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>
Updated Records: 10
- mysql_client_encoding — 返回字符集的名称
link_identifier
MySQL 连接。如不指定连接标识,则使用由 mysql_connect() 最近打开的连接。如果没有找到该连接,会尝试不带参数调用 mysql_connect() 来创建。如没有找到连接或无法建立连接,则会生成 E_WARNING
级别的错误。
$charset = mysql_client_encoding($link);
echo "The current character set is: $charset\n";
?>
The current character set is: latin1
- mysql_close — 关闭 MySQL 连接
link_identifier
,则关闭上一个打开的连接。参数:link_identifier
MySQL 连接. 如果该连接标识符未给出, 将使用最近一次mysql_connect()建立的连接. 如果没有找到可使用的连接, 将产生一个 E_WARNING
错误.
TRUE
, 或者在失败时返回 FALSE
。
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
Connected successfully
- mysql_connect — 打开一个到 MySQL 服务器的连接
server
MySQL 服务器。可以包括端口号,例如 "hostname:port",或者到本地套接字的路径,例如对于 localhost 的 ":/path/to/socket"。
如果 PHP 指令 mysql.default_host 未定义(默认情况),则默认值是 'localhost:3306'。 在 SQL 安全模式 时,参数被忽略,总是使用 'localhost:3306'。
username
用户名。默认值由 mysql.default_user 定义。 在 SQL 安全模式 时,参数被忽略,总是使用服务器进程所有者的用户名。
password
密码。默认值由mysql.default_password定义。在 SQL 安全模式 时,参数被忽略,总是使用空密码。
new_link
如果用同样的参数第二次调用 mysql_connect(),将不会建立新连接,而将返回已经打开的连接标识。参数new_link
改变此行为并使 mysql_connect() 总是打开新的连接,甚至当 mysql_connect() 曾在前面被用同样的参数调用过。
client_flags
client_flags
参数可以是以下常量的组合:MYSQL_CLIENT_SSL
,MYSQL_CLIENT_COMPRESS
,MYSQL_CLIENT_IGNORE_SPACE
或MYSQL_CLIENT_INTERACTIVE
。进一步信息见MySQL 客户端常量。
FALSE
。
mysql_connect() 例子:
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?> mysql_connect() 例子:使用 hostname:port 语法: // we connect to example.com and port 3307
$link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
// we connect to localhost at port 3307
$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?> mysql_connect() 例子:使用 ":/path/to/socket" 语法: // we connect to localhost and socket e.g. /tmp/mysql.sock
//variant 1: ommit localhost
$link = mysql_connect('/tmp/mysql', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
// variant 2: with localhost
$link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
- mysql_create_db — 新建一个 MySQL 数据库
database_name
要创建的数据库名。
link_identifier
MySQL 连接。如不指定连接标识,则使用由 mysql_connect() 最近打开的连接。如果没有找到该连接,会尝试不带参数调用 mysql_connect() 来创建。如没有找到连接或无法建立连接,则会生成 E_WARNING
级别的错误。
TRUE
, 或者在失败时返回 FALSE
。
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');if (!$link) {
die('Could not connect: ' . mysql_error());
}
$sql = 'CREATE DATABASE my_db';
if (mysql_query($sql, $link)) {
echo "Database my_db created successfully\n";
} else {
echo 'Error creating database: ' . mysql_error() . "\n";
}
?>
Database my_db created successfully
- mysql_data_seek — 移动内部结果的指针
result
resource 型的结果集。此结果集来自对 mysql_query() 的调用。
row_number
想要设定的新的结果集指针的行数。
返回值:成功时返回TRUE
, 或者在失败时返回 FALSE
。
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');if (!$link) {
die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db('sample_db');
if (!$db_selected) {
die('Could not select database: ' . mysql_error());
}
$query = 'SELECT last_name, first_name FROM friends';
$result = mysql_query($query);
if (!$result) {
die('Query failed: ' . mysql_error());
}
/* fetch rows in reverse order */
for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
if (!mysql_data_seek($result, $i)) {
echo "Cannot seek to row $i: " . mysql_error() . "\n";
continue;
}
if (!($row = mysql_fetch_assoc($result))) {
continue;
}
echo $row['last_name'] . ' ' . $row['first_name'] . "
\n";
}
mysql_free_result($result);
?>
- mysql_db_name — 取得结果数据
result
mysql_list_dbs() 调用所返回的结果指针。
row
结果集中的行号。
field
字段名。
返回值:如果成功则返回数据库名,失败返回FALSE
。如果返回了 FALSE
,用 mysql_error() 来判断错误的种类。
error_reporting(E_ALL);$link = mysql_connect('dbhost', 'username', 'password');
$db_list = mysql_list_dbs($link);
$i = 0;
$cnt = mysql_num_rows($db_list);
while ($i echo mysql_db_name($db_list, $i) . "\n";
$i++;
}
?>
- mysql_db_query — 发送一条 MySQL 查询
根据查询结果返回一个正的 MySQL 结果资源号,出错时返回 FALSE
。本函数会对 INSERT/UPDATE/DELETE 查询返回TRUE
/FALSE
来指示成功或失败。
mysql_db_query() 选择一个数据库并在其上执行查询。如果没有提供可选的连接标识,本函数会去找一个到 MySQL 服务器的已打开的连接,如果找不到已打开连接则会尝试无参数调用 mysql_connect() 来建立一个。
注意此函数不会切换回先前连接到的数据库。换句话说,不能用此函数临时在另一个数据库上执行 sql 查询,只能手工切换回来。强烈建议用户在 sql 查询中使用 database.table 语法来替代此函数。
- mysql_drop_db — 丢弃(删除)一个 MySQL 数据库
mysql_drop_db() 尝试丢弃(删除)指定连接标识所关联的服务器上的一整个数据库。
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
为向下兼容也可以用 mysql_dropdb(),但反对这样做。
不提倡使用 mysql_drop_db() 函数最好用 mysql_query() 提交一条 SQL DROP DATABASE 语句来替代。
database_name
The name of the database that will be deleted.link_identifier
MySQL 连接。如不指定连接标识,则使用由 mysql_connect() 最近打开的连接。如果没有找到该连接,会尝试不带参数调用 mysql_connect() 来创建。如没有找到连接或无法建立连接,则会生成 E_WARNING
级别的错误。返回值:成功时返回 TRUE
, 或者在失败时返回 FALSE
。
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');if (!$link) {
die('Could not connect: ' . mysql_error());
}
$sql = 'DROP DATABASE my_db';
if (mysql_query($sql, $link)) {
echo "Database my_db was successfully dropped\n";
} else {
echo 'Error dropping database: ' . mysql_error() . "\n";
}
?>
- mysql_errno — 返回上一个 MySQL 操作中的错误信息的数字编码
返回上一个 MySQL 函数的错误号码,如果没有出错则返回 0(零)。
从 MySQL 数据库后端来的错误不再发出警告,要用 mysql_errno() 来提取错误代码。注意本函数仅返回最近一次 MySQL 函数的执行(不包括 mysql_error() 和 mysql_errno())的错误代码,因此如果要使用此函数,确保在调用另一个 MySQL 函数之前检查它的值。
mysql_connect("localhost", "mysql_user", "mysql_password");mysql_select_db("nonexistentdb");
echo mysql_errno() . ": " . mysql_error(). "\n";
mysql_select_db("kossu");
mysql_query("SELECT * FROM nonexistenttable");
echo&nb
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
上一篇: 一些好的网站(不断更新……)
下一篇: MongoDB一对多关系建模