您的位置:首页 > 编程语言 > PHP开发

php的mysql\mysqli\PDO(一)mysql

2016-03-24 13:38 531 查看
原文链接:http://www.orlion.ga/1140/

工作中数据库的操作都被封装好了,这些怎么用的都快忘了干脆写篇博客重新复习下,以后要是再忘记了可以看这篇文章。

PHP 5.5.0 起已废弃

1、mysql_connect()

resource mysql_connect([ string $server [, string $username [, string $password [, bool$new_link [, int $client_flags ]]]]] )

$server:服务器地址可以包括端口号,如果 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:使用以下常量:

MySQL 客户端常量
常量说明
MYSQL_CLIENT_COMPRESS
使用压缩的通讯协议
MYSQL_CLIENT_IGNORE_SPACE
允许在函数名后留空格位
MYSQL_CLIENT_INTERACTIVE
允许设置断开连接之前所空闲等候的 interactive_timeout 时间(代替 wait_timeout)。
MYSQL_CLIENT_SSL
使用 SSL 加密。本标志仅在 MySQL 客户端库版本为 4.x 或更高版本时可用。在 PHP 4 和 Windows 版的 PHP 5 安装包中绑定的都是 3.23.x。

2、mysql_close()

bool mysql_close ([ resource $link_identifier = NULL ] )

mysql_close() 关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。如果没有指定
link_identifier
,则关闭上一个打开的连接.通常不需要使用 mysql_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭。PHP 4 Zend 引擎引进了引用计数系统,可以自动检测到一个资源不再被引用了(和 Java 一样)。这种情况下此资源使用的所有外部资源都会被垃圾回收系统释放。因此,很少需要手工释放内存。

3、mysql_select_db()

bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )

如果没有指定$link_identifier则使用上一个打开的数据库连接,如果没有打开的连接则将无参数调用mysql_connet()取得一个连接并使用。如果没有连接则
E_WARNING错误


4、mysql_query()

resource mysql_query ( string $query [, resource $link_identifier = NULL ] )

$query查询字符串不应该以分号结束

$link_identifier如果不指定处理方式与mysql_select_db()相同。

返回值:

mysql_query() 仅对 SELECT,SHOW,DESCRIBE, EXPLAIN 和其他语句 语句返回一个 resource,如果查询出现错误则返回
FALSE
。对于其它类型的 SQL 语句,比如INSERT, UPDATE, DELETE, DROP 之类, mysql_query() 在执行成功时返回
TRUE
,出错时返回
FALSE
。返回的结果资源应该传递给 mysql_fetch_array() 和其他函数来处理结果表,取出返回的数据。假定查询成功,可以调用 mysql_num_rows() 来查看对应于 SELECT 语句返回了多少行,或者调用mysql_affected_rows() 来查看对应于 DELETE,INSERT,REPLACE 或 UPDATE 语句影响到了多少行。如果没有权限访问查询语句中引用的表时,mysql_query() 也会返回
FALSE


对于包含二进制数据的查询,你必须使用mysql_real_query()而不是mysql_query(),因为二进制代码数据可能包含“\0”字符,而且,mysql_real_query()比mysql_query()更快,因为它不会在查询字符串上调用strlen()。如果查询成功,函数返回零。如果发生一个错误,函数返回非零

5、mysql_affected_rows()

int mysql_affected_rows ([ resource $link_identifier = NULL ] )

取得最近一次与
link_identifier
关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。

6、mysql_fetch_array()

array mysql_fetch_array ( resource $result [, int $ result_type ] )

将结果以数组方式返回,一次只返回一行,然后指向下一行(用while循环取出)如果没有更多结果返回false。如果结果中有两个或两个以上的列有相同的字段名,最后一列将优先。如果sql中指定了别名则使用别名。PHP手册中指出mysql_fetch_array并不明显比mysql_fetch_row慢。

$result_type:可选:MYSQL_ASSOC(关联数组),MYSQL_NUM(枚举数组) 和 MYSQL_BOTH,默认值MYSQL_BOTH。

// MYSQL_NUM
$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf ("ID: %s  Name: %s", $row[0], $row[1]);
}
// MYSQL_ASSOC
$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf ("ID: %s  Name: %s", $row["id"], $row["name"]);
}
// MYSQL_BOTH
$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf ("ID: %s  Name: %s", $row[0], $row["name"]);
}

7、其他函数:

string mysql_error ([ resource $link_identifier ] )

如果没有指定数据库连接则使用上一个连接,只返回最近一次mysql函数的错误文本。

bool mysql_set_charset ( string $charset [, resource $link_identifier = NULL ] )

设置字符集,数据库连接的选择与mysql_select_db()一样。

string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )

转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集(这是与mysql_escape_string()的不同)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: