php和mysql进行交互
如何进行交互?
2016年1月15日
19:21
1、通信函数: improved MySQL函数
PHP来执行简单的查询。
用于执行查询的PHP函数都是mysqli_query()
一、链接到MySQL
a、需要适当命名mysqli_connect()函数。
$dbc = mysql i_ connect(hostname, username, Password, db_ name);
主机 用户名和密码 使用的数据库的名称
Mysqli_connect_error函数:返回连接错误消息,不带参数,只需要调用即可。
Resource mysql_connect([string $server[,string $username[,string $password[,bool $new_link[,int $client_flags]]]]])
Server:规定要链接的服务器,可以包括端口号,例如"hostname:port"
Username:访问MySQL数据库要具有的用户名,默认值是服务器进程所有者root的用户名
Password:用户具有的密码,默认是空密码。
New_link:如果用同样的参数第二次调用mysql_connect(),将不会建立新连接,而将返回已经打开的连接标识。
建立持久性连接
Mysqli_pconnect():打开一个到数据库的持久性连接。当连接时,mysqli_conncet函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的连接,如果找到,则返回此连接标识而不打开新连接。
关闭连接函数:mysqli_close()函数可以关闭使用mysqli_connect()函数打开的连接。
单独存放连接文件:将数据库连接的代码放到一个单独的文件中,其他的文件如果涉及到这个功能可以直接调用该文件。这样做的好处是方便数据库的代码修改。并达到功能相互分离和代码重用的效果。
<?php
$link = mysqli_connect("localhost","root","0");
?>
<?php
Include_once("Sql_Connection.php");
?>
选择数据库。
Bool mysql_select_db(string $database_name[,resource $link_identifier])
在建立到达mysql的连接时,不需要选择数据库,从mysqli_connect中省略该参数。
$dbc = mysqli _connect(hostname ,username, password)
在合适时,用以下代码选择数据库 mysqli_select_db($dbc,db_name)。
执行简单的查询
PHP函数 mysqli_query() 和mysqli_db_query()函数将sql语句传递给MySQL数据库管理系统。然后数据库管理系统执行这些SQL语句
Resource mysqli_ query(string $query[,resource $link_identifier])。 第一个参数表示要执行的SQL语句,第二个参数表示资源标识符。可以用来存储该函数返回的资源。如果没有指定link_identifier连接标识符,则使用上一个打开的连接。
Mysqli_query仅对select、show、explain或describe语句返回一个资源标识符。
$r=mysqli_query($dbc,$q)。
对于insert、update、delete等简单的查询,不会返回记录。
"执行成功"意味着没有错误地运行,并不意味着必须具有想要的结果。
$r=mysqli_query($dbc,$q);
If($r){//worked!}
若查询不成功,echo mysqli_error($dbc)
关闭 mysqli_close($dbc)。
获取和显示数据、mysql_result()、Mysql_fetch_row、mysql_fetch_array()函数。
Mixed mysql_result()函数返回结果集中一个字段的值,在PHP中,如果该函数执行成功返回字段值,否则返回false。
Mixed mysql_result(resource $result,int $row[,mixed $field])
Mysqli_db_query()函数会对insert、update、insert等操作返回记录。
Mysql Imporoved 扩展同样可使用两种方式来与数据库进行交互。
MySQLi:主要类,提供了数据库连接,查询方法等。
Mysqli_Result:处理select查询的结果。
Mysqli_STMT:用于执行预处理查询。
1、创建连接:
$mysqli = new mysqli(hostname ,username ,password, database)
如果不能建立连接,connect_error属性将存储错误原因。
If($mysqli->connect_error)
{echo $mysqli-connect_error;}
执行简单的查询: mysqli->query(query);
其唯一参数就是要执行的SQL命令,通常会将它先赋给一个独立的变量。
$q='select * from tablename'
$mysqli --->query($q)
获取和显示数据:
Mysql_result()函数、mysql_fetch_row() 、mysql_fetch_array()函数
Mysql_fetch_assoc()函数和mysql_fetch_object()函数。
Mysql_result()函数返回结果集中一个字段的值,在PHP中,如果该函数执行成功返回字段值,否则返回false。语法格式如下:
Mixed mysql_result(resource $result, int $row [,mixed $field]
<?php
$link = mysql_connect("localhost","root","0");
if(!$link){echo "数据库连接失败;"}
Mysql_select_db("db_student");
$sqlText = "select * from student";
$result = mysql_query($sqlText);
Echo "编号:".mysql_result($result,0,"id")."<br/>";
Echo "姓名:".mysql_result($result,0,"name")."<br/>";
Echo "年龄:".mysql_result($result,0,"age")."<br/>";
Mysql_close();
?>
Mysql_fetch_row():该函数从result关联的结果集中取得一行作为数字数组
Array mysql_fetch_row(resource $result)。
Mysql_fetch_array()函数从结果集中取得一行作为关联数组或数字数组或二者兼有。
Mysql_fetch_object()函数从结果集中获取一行数据作为对象。
Object mysql_fetch_object(resource $result) 该函数返回的是一个对象而不是数组,间接地意味着只能通过字段名来访问对象,而不是偏移量。
管理数据库数据:例如插入数据,删除数据,修改数据等。
Mysql_select_db("db_student");
$id = $_POST['name'];
$sex = $_POST['sex'];
$age = $_POST['age'];
插入表格$exec = insert into tablename values($id,'$name','sex','$age');
$result = mysql_query(#exec);
If(result){echo " 添加新学员成功"}
删除数据 $exec = 'delete from student where ID=$id';
修改数据 $exec ="update student set name='$name',sex='sex',age ='$age' where id='$id'"。
数据库高级操作:两个获取错误的内置函数 mysql_error() mysql_errno()这2个函数。
Mysql_error():该函数返回上一个MySQL操作产生的文本错误信息,如果MySQL操作没有出错,则返回空字符串。
String mysql_error([resource $link_identifier])
Int mysql_errno():返回的是错误信息的数字编码,并不反悔错误的详细信息。如果执行过程没有出错,则返回0.
获取数据库和表信息:
Mysql_list_dbs()函数:返回MySQL服务器中所有的数据库。
该函数将返回一个结果指针,包含了当前MySQL进程中所有可用的数据库。
<?php
$con = mysql_connect("localhost","root","0")
?>
Mysql_db_name()函数:取得mysql_list_dbs()调用所返回的数据库名。
Mysql_list_tables()函数:接受一个数据库名并返回和mysql_query()函数很相似的一个结果指针。用mysql_table_name()函数来遍历此结果指针,或者任何使用结果表的函数。
获取字段信息:一组内置函数专门用于获取MySQL服务器数据库中表字段的相关信息。
例如字段名称、字段数据类型和是否为主键等。
1、mysql_fetch_field():从结果集中取得列信息并作为对象返回
Object mysql_fetch_field(resource $result [,int $field_offset])
$field_offset表示字段偏移量,如果没有指定字段偏移量则下一个尚未被mysql_fetch_field()取得的字段被提取。该函数返回的对象属性为字段的相关信息,例如列名和该列所在表的表名。
name:列名;
table:该列所在的表名。
def:该列的默认值。
Max_length: 该列最大长度。
Not_null:如果该列不能为null,返回1,否则返回0;
Primary_key:如果该列是主键,返回1,否则返回0;
type:该列的类型