php开发中常用到的数据库操作方法函数

将PHP和MYSQL合理且实用的咬合在一道能够创立出精致的数据库网址。MYSQL是一种Mini的,紧密的数量服务器,帮衬标准SQL。它在UNIX和WINDOWS遭受下都能够利用。
PHP和MYSQL皆避防费的开放源码。它们的组合可以在WINDOWS中升华,在UNIX中做劳务。PHP也支撑其余部分数据库包蕴PostgreSQL.

前日把在php教程付出中常用到的数据库教程操作方法函数总计深入分析一下了,希望有意思味的情侣能够参见一下。
一、数据库操作

下边有贰个事例: 首先你早就设置了PHP及MYSQL.
这一个大约的本子例子是从数据库中读取数据然后显示出来。

  1. 连接MYSQL数据
    mysql教程_connect()

html body ?php

提示和注释
批注:脚本一结束,到服务器的总是就被关门,除非在此以前早就分明调用
mysql_close() 关闭了。
唤醒:要创设二个持久连接,请使用 mysql_pconnect() 函数。
例子

$db = mysql_connect(“localhost”, “root”); mysql_select_db(“mydb”,
$db); $result = mysql_query(“SELECT * FROM books”,$db); echo “Title:
“.mysql_result($result,0,”title”).”br”; echo “Author:
“.mysql_result($result,0,”author”).”br”; echo “Price:
“.mysql_result($result,0,”price”).”br”;

<?php
$con = mysql_connect(“localhost”,”mysql_user”,”mysql_pwd”);
if (!$con)
  {
  die(‘Could not connect: ‘ . mysql_error());
  }

// 一些代码…

mysql_close($con);
?>

? /body /html

e.g.

函数mysql_connect(卡塔尔(قطر‎是指在钦点的主机上经过客户名连接七个MYSQL服务器。变量
$db 是用来交付这些两次三番。.

澳门新浦京8455com,$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD) or
die(‘ www.111cn.net Unable to connect, please
check connection paremeters’);

mysql_select_db(卡塔尔 钦点数据库用在后头的疑问。函数 mysql_query(卡塔尔(قطر‎ 是发送
SQL 疑问到 MySQL 举办试行 , 结果重临并积累在变量 $result 中.

 2. 选项数据库
mysql_select_db()
连接上数据库后,PHP暗中同意选择的数据库未必是大家后边操作中必要的数据库,为保障数据库接纳准确,平时在数据库连接语句前面还要加上数据库接纳语句。

最后 mysql_result(卡塔尔国 函数是近水楼台先得月结果。

mysql_select_db(卡塔尔 函数设置活动的 MySQL 数据库。
一旦成功,则该函数返回 true。假若退步,则赶回 false。
语法
mysql_select_db(database,connection)
参数 描述
database 必得。规定要选拔的数据库。
connection 可选。规定 MySQL 连接。假诺未内定,则利用上三个连接。

e.g.
mysql_select_db(MYSQL_DB, $db) or die(mysql_error($db));

  1. 执行SQL语句
    mysql_query()
    该函数将SQL语句发送到当前移动的数据库并进行语句,再次回到结果。

概念和用法
mysql_query(State of Qatar 函数履行一条 MySQL 查询。
语法
mysql_query(query,connection)
参数 描述
query 必得。规定要发送的 SQL 查询。注释:查询字符串不应以分部甘休。
connection 可选。规定 SQL
连接标志符。如若未规定,则动用上一个开发的总是。
说明
假定未有展开的三番五次,本函数会尝试无参数调用 mysql_connect(卡塔尔(قطر‎函数来确立叁个总是并动用之。
返回值
mysql_query(卡塔尔(قطر‎ 仅对 SELECT,SHOW,EXPLAIN 或 DESC安德拉IBE
语句再次回到贰个能源标志符,如若查询推行不得法规赶回 FALSE。
对于任何项指标 SQL 语句,mysql_query(卡塔尔国 在施行成功时重回TRUE,出错开上下班时间重回 FALSE。
非 FALSE
的再次来到值意味着查询是法定的并能够棉被和衣服务器实践。那并不表明任何关于影响到的或再次回到的行数。很有希望一条查询实行成功了但并未有影响到或从不再次回到任何行。

e.g.

$query = “SELECT * FROM $table”
$result = mysql_query($query, $db) or die(mysql_error($db));

  1. 关门数据库
    mysql_close()
    该函数用于关闭没有须要延续活跃的数据库,但该办法不是必得的,日常PHP会自动关闭不三番两次活跃的数据库。
    e.g.
    mysql_close($db);
  2. 释放SQL结果
    mysql_free_result()
    该函数用于释放mysql_query(卡塔尔国实行结果占用的内部存储器,该函数超少被调用,除非result相当大,占用太多内存;平时在PHP脚本施行完结之后很自动释放占用的内部存款和储蓄器。
    e.g
    ysql_free_result(卡塔尔 函数释放结果内部存储器。
    设若成功,则赶回 true,倘使失败,则赶回 false。
    语法
    mysql_free_result(data)
    参数 描述
    data 必需。要自由的结果标记符。该结果标志符是从 mysql_query(卡塔尔国重返的结果。
    升迁和注释
    注释:mysql_free_result(卡塔尔仅要求在假造到重临极大的结果集时会占用多少内部存款和储蓄器时调用。在剧本甘休后具备涉及的内部存款和储蓄器都会被电动释放。
    例子

<?php
$con = mysql_connect(“localhost”, “peter”, “abc123”);
if (!$con)
  {
  die(‘Could not connect: ‘ . mysql_error());
  }

$db_selected = mysql_select_db(“test_db”,$con);

$sql = “SELECT * from Person”;
$result = mysql_query($sql,$con);
print_r(mysql_fetch_row($result));

// 释放内部存款和储蓄器

 

mysql_free_result($result);

$sql = “SELECT * from Customers”;
$result = mysql_query($sql,$con);
print_r(mysql_fetch_row($result));

mysql_close($con);
?>

二、SQL执行结果操作

  1. 回来实行结果中的一行
    mysql_fetch_row()
    重临执行结果的近来行的数值数组,施行那么些函数后,结果指向下一行。
    e.g.
    $row = mysql_fetch_row($result);
    拍卖实践结果经常位于while循环中,遍历每一行
    e.g.
    while($row = mysql_fetch_row($result))
    {……}
  2. mysql_fetch_row(卡塔尔(قطر‎的代表格局
    mysql_fetch_array()
    mysql_fetch_assoc()
    mysql_fetch_array(State of Qatar再次来到键值对数组,键为查询的table的列名;
    mysql_fetch_assoc(卡塔尔国重返结果时方可先排序(倘若为可选参数赋值),约等于mysql_fetch_array()+MYSQL_ASSOC
  3. 实施结果的字段(列)属性
    mysql_fetch_field()
    eg.
    mysql_fetch_田野(卡塔尔国 函数从结果集中拿到列音讯并视作对象回来。
    mysql_fetch_田野同志(State of Qatar能够用来从询问结果中获得字段的新闻。若无一点点名字段偏移量,则提取下一个未有被
    mysql_fetch_田野(field卡塔尔(قطر‎(卡塔尔国 获得的字段。
    该函数重临叁个分包字段新闻的对象。
    被重临的靶子的习性为:
    name – 列名
    table – 该列所在的表名
    max_length – 该列最大尺寸
    not_null – 1,倘诺该列不能够为 NULL
    primary_key – 1,假诺该列是 primary key
    unique_key – 1,即便该列是 unique key
    multiple_key – 1,假若该列是 non-unique key
    numeric – 1,倘诺该列是 numeric
    blob – 1,假若该列是 BLOB
    type – 该列的种类
    unsigned – 1,假若该列是无符号数
    zerofill – 1,即便该列是 zero-filled
    语法
    mysql_fetch_field(data,field_offset)
    参数 描述
    data 必须。要利用的数额指针。该多少指针是从 mysql_query(卡塔尔国重回的结果。
    field_offset 必须。规定从哪些字段最早。0
    提示第二个字段。假设未安装,则取回下一个字段。
    提醒和注释
    评释:本函数再次回到的字段名是分别朗朗上口写的。
    例子

<?php
$con = mysql_connect(“localhost”, “hello”, “321”);
if (!$con)
  {
  die(‘Could not connect: ‘ . mysql_error());
  }

$db_selected = mysql_select_db(“test_db”,$con);

$sql = “SELECT * from Person”;
$result = mysql_query($sql,$con);

while ($property = mysql_fetch_field($result))
  {
  echo “Field name: ” . $property->name . “<br />”;
  echo “Table name: ” . $property->table . “<br />”;
  echo “Default value: ” . $property->def . “<br />”;
  echo “Max length: ” . $property->max_length . “<br />”;
  echo “Not NULL: ” . $property->not_null . “<br />”;
  echo “Primary Key: ” . $property->primary_key . “<br
/>”;
  echo “Unique Key: ” . $property->unique_key . “<br />”;
  echo “Mutliple Key: ” . $property->multiple_key . “<br
/>”;
  echo “Numeric Field: ” . $property->numeric . “<br />”;
  echo “BLOB: ” . $property->blob . “<br />”;
  echo “Field Type: ” . $property->type . “<br />”;
  echo “Unsigned: ” . $property->unsigned . “<br />”;
  echo “Zero-filled: ” . $property->zerofill . “<br /><br
/>”;
  }

mysql_close($con);
?>

  1. 查询数据库中的表名
    小编们要出示全体的表就能够用到mysql_list_tables用法文法来操作,
    mysql_list_tables 语法

mysql_list_tables()
e.g.
$db_name = MYSQL_DB;
$result = mysql_list_tables($db_name);
echo “数据库中包涵如下表:”;
while ($row = mysql_fetch_row($result))
{
echo $row[0];
}

  1. 查询数据库的列名(字段名)

esource mysql_list_fields ( string database_name, string table_name
[, resource link_identifier] )

mysql_list_田野(field卡塔尔(قطر‎s()取得给定表名的新闻。参数是数码库名和表名。重返叁个结果指针,能够用来
mysql_field_flags(),mysql_field_len(),mysql_field_name() 和
mysql_field_ty

mysql_list_fields()
e.g.
$fields = mysql_list_fields($db_name,$table);
$columns = mysql_num_fields($fields);
for ($i = 0; $i < $columns; $i++)
echo  mysql_field_name($fields, $i);

三、其余函数

  1. mysql_num_rows()

mysql_num_rows(卡塔尔 函数再次来到结果集中央银行的数额。
语法
mysql_num_rows(data)
参数 描述
data 必须。结果集。该结果集从 mysql_query(卡塔尔(قطر‎ 的调用中获得。
说明
mysql_num_rows(卡塔尔 重回结果集中央银行的多寡。此命令仅对 SELECT
语句有效。要收获被 INSERT,UPDATE 或许 DELETE 查询所影响到的行的数目,用
mysql_affected_rows()。
归来实行结果的行数。
e.g.

$num = mysql_num_rows($result);

  1. mysql_num_fields()
    回到实施结果的列数(字段数)。
    e.g. $num = mysql_num_fields($result);
    3.mysql_set_charset()
    安装进行结果的编码,制止在网页中显示中文时乱码。
    e.g.

$query = “select * from $table_name”;
mysql_query(‘set names utf8′);
$result = mysql_query($query, $db) or die(mysql_error($db));

注:

  1. 文中山大学写代码为预约义的内容,如define(MYSQL_HOST,  ‘localhost’);
You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图