LAMP之路

不积跬步,无以至千里!

[PHP函数]PHP Mysql数据库函数

2012-10-18 一抹阳光 PHP

<pre>
<?php
/*PHP Mysql数据库函数
*2009.12.15
*/
//1.mysql_connect()、mysql_errno()、mysql_error()、mysql_close()、mysql_select_db()、mysql_query()
echo ‘<b>1.mysql_connect()、mysql_errno()、mysql_error()、mysql_close()、 mysql_select_db()、mysql_query()</b><br />’;
//mysql_connect()可加第三(bool,是否总是打开新连接)、第四(常量的组 合:MYSQL_CLIENT_SSL,MYSQL_CLIENT_COMPRESS,MYSQL_CLIENT_IGNORE_SPACE 或 MYSQL_CLIENT_INTERACTIVE)。
//mysql_errno()返回上一个 MySQL 函数的错误号码,如果没有出错则返回 0(零)。
//mysql_error()返回上一个 MySQL 函数的错误文本,如果没有出错则返回 ”(空字符串)。如果没有指定连接资源号,则使用上一个成功打开的连接从 MySQL 服务器提取错误信息。
//mysql_select_db()设定与指定的连接标识符所关联的服务器上的当前激活数据库。如果没有指定连接标识符,则使用上一个打开的连接。如果没有打开的连接,本函数将无参数调用 mysql_connect() 来尝试打开一个并使用之。
//mysql_query()向与指定的连接标识符关联的服务器中的当前活动数据库发送一条查询。如果没有第二个参数(指定连接),则使用上一个打开的 连接。如果没有打开的连接,本函数会尝试无参数调用 mysql_connect() 函数来建立一个连接并使用之。查询结果会被缓存。
//mysql_close()关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。若无第二个参数(指定连接),则关闭上一个打开的连接。
$link = mysql_connect(’127.0.0.1:3306′, ‘root’, ’123456′);
if (!$link) {
die(‘Could not connect: ‘ . mysql_errno() .’:’. mysql_error());
}
echo “Connected successfully!\n”;
mysql_select_db(‘test’) or die(“选择数据库失败!”.mysql_error());
echo “Selected successfully!\n”;
mysql_query(“set names ‘GBK’”);
//mysql_close($link);
echo ‘<br />—————————————————<br />’;

//2.mysql_affected_rows()、mysql_insert_id()、mysql_num_rows()、mysql_num_fields()
echo ‘<b>2.mysql_affected_rows()、mysql_insert_id()、mysql_num_rows()、mysql_num_fields()</b><br />’;
//mysql_affected_rows()取得 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。如果最近一次查询失败的话,函数返回 -1。当使用 UPDATE 查询,MySQL 不会将原值和新值一样的列更新。REPLACE 语句首先删除具有相同主键的记录,然后插入一个新记录。本函数返回的是被删除的记录数加上被插入的记录数。
//mysql_insert_id()返回上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。
//mysql_num_rows()返回结果集中行的数目。此命令仅对 SELECT 语句有效。
//mysql_num_fields()返回结果集中字段的数目。
mysql_query(‘DELETE FROM user WHERE id < 10′);
printf(“Records deleted: %d\n”, mysql_affected_rows());
mysql_query(“INSERT INTO user(name) values(‘zhang’)”);
printf (“Last inserted record has id %d\n”, mysql_insert_id());
$result = mysql_query(“SELECT * FROM user”, $link);
$num_rows = mysql_num_rows($result);
echo “$num_rows Rows\n”;
$result = mysql_query(“SELECT * FROM user”, $link);
$num_cols = mysql_num_fields($result);
echo “$num_cols Cols\n”;
echo ‘<br />—————————————————<br />’;

//3.mysql_fetch_array()、mysql_fetch_assoc()、mysql_fetch_row()、mysql_fetch_object()
echo ‘<b>3.mysql_affected_rows()、mysql_fetch_assoc()、mysql_fetch_row()、mysql_fetch_object()</b><br />’;
//mysql_fetch_array()除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。 如果没有更多行则返回 FALSE。 比用 mysql_fetch_row() 慢。
//mysql_fetch_assoc()和用 mysql_fetch_array() 加上第二个可选参数 MYSQL_ASSOC 完全相同。关联索引。
//mysql_fetch_row()和用 mysql_fetch_array() 加上第二个可选参数 MYSQL_NUM 完全相同。它仅仅返回关联数组。数字索引。
//mysql_fetch_object() 返回一个对象而不是数组。
echo ‘<br />—————————————————<br />’;

//4.mysql_fetch_field()、mysql_fetch_lengths()、mysql_free_result()
echo ‘<b>4.mysql_fetch_field()、mysql_fetch_lengths()、mysql_free_result()</b><br />’;
//mysql_fetch_field()从结果集中取得列信息并作为对象返回。如果没有指定字段偏移量,则下一个尚未被 mysql_fetch_field() 取得的字段被提取。
//mysql_fetch_lengths()取得的行中每个字段的长度,如果出错返回 FALSE。

$result = mysql_query(“select * from user”);
$i = 0;
while ($i < mysql_num_fields($result)) {
echo “Information for column $i:<br />\n”;
$meta = mysql_fetch_field($result);
if (!$meta) {
echo “No information available<br />\n”;
}echo ”
blob:         $meta->blob
max_length:   $meta->max_length
multiple_key: $meta->multiple_key
name:         $meta->name
not_null:     $meta->not_null
numeric:      $meta->numeric
primary_key:  $meta->primary_key
table:        $meta->table
type:         $meta->type
unique_key:   $meta->unique_key
unsigned:     $meta->unsigned
zerofill:     $meta->zerofill
“;
$i++;
}
mysql_free_result($result);//释放资源
echo ‘<br />—————————————————<br />’;

//5.mysql_field_name()、mysql_field_type()、mysql_field_table()、mysql_field_len()、mysql_field_flags()
echo ‘<b>5.mysql_field_name()、mysql_field_type()、mysql_field_table()、 mysql_field_len()、mysql_field_flags()</b><br />’;
//mysql_field_name() 取得结果中指定字段的字段名,返回的字段名是区分大小写。
//mysql_field_type() 取得结果集中指定字段的类型
//mysql_field_table() 取得指定字段所在的表名
//mysql_field_len() 返回指定字段的长度
//mysql_field_flags() 结果中取得和指定字段关联的标志,每个标志都用一个单词表示,之间用一个空格分开。
$result = mysql_query(“SELECT * FROM user”);
$fields = mysql_num_fields($result);
$rows   = mysql_num_rows($result);
$table = mysql_field_table($result, 0);
echo “Your ‘”.$table.”‘ table has “.$fields.” fields and “.$rows.” record(s)\n”;
echo “The table has the following fields:\n”;
for ($i=0; $i < $fields; $i++) {
$type  = mysql_field_type($result, $i);
$name  = mysql_field_name($result, $i);
$len   = mysql_field_len($result, $i);
$flags = mysql_field_flags($result, $i);
echo $type.” “.$name.” “.$len.” “.$flags.”\n”;
}
echo ‘<br />—————————————————<br />’;
?>