mysql后面的i,指improved, interface, ingenious, incompatible or incomplete(改扩展仍在开发中,因为MYSQL4。1和MYSQL5都没有正式推出尚在开发中,新的特性没有完全实现)
mysqli想实现的目标具体有:
-更简单的维护
-更好的兼容性
-向后兼容
mysql(指PHP中的模块)发展到现在显得比较凌乱,有必要重新做下整理。同时,有必要跟上MYSQL(DBMS)的发展步伐,加入新的特性的支持,以及适应MYSQL(DBMS)以后的版本。所以诞生了mysqli.dll
mysqli.dll的特性:
-可以和mysql.dll一样的方式使用
-支持OO接口,简简单单调用
-支持MYSQL4。1引入的新特性
-通过mysqli_init() 等相关函数,可以设置高级连接选项
php中连接MySQL数据库用到的接口定义如下:<?php
/*
* 建立连接, mysql_connect,打开一个到MySQL服务器的连接,
* 失败返回false,
* 成功返回一个MySQL连接标识
*/
$db = mysql_connect("127.0.0.1","root","root123")
if(!$db){
die('连接建立错误: ' . mysql_error())
}
if(!mysql_select_db("php")){//选择数据库,成功返回true,失败返回false
die('数据库选择错误: ' . mysql_error())
}
$insertSQL = "insert into php values(4,'phpinsert')"//插入语句
$updateSQL = "update php set name='updatephp' where id = 4"//修改语句
$deleteSQL = "delete from php where id = 2"
/*
* 发送一条MySQL查询,仅对SELECT,SHOW,EXPLAIN,DESCRIBE语句返回一个资源标识符,查询不正确则返回false,
* 对于其它类型的SQL语句,mysql_query()执行成功时返回true,出错时返回false。
* 非false的返回值代表查询时合法的并且能被服务器执行,但并不表示影响到的行数或返回的行数,
* 因为一条查询有可能执行成功了但并不返回或者影响到任何行。
*/
$insertresult = mysql_query($insertSQL)
if($insertresult != false){//查询成功
/*
* 取得最近一次与 link_identifier 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。
* 执行成功则返回受影响的行的数目,如果最近一次查询失败的话,函数返回 -1。
*/
$number = mysql_affected_rows()
echo "插入影响行数:".$number."<br />"
/*
* 取得上一步 INSERT *** 作产生的 ID ,返回上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号,
* 如果上一查询没有产生 AUTO_INCREMENT 的值,则 mysql_insert_id() 返回 0。
* 如果需要保存该值以后使用,要确保在产生了值的查询之后立即调用 mysql_insert_id()。
* 此处由于没有 AUTO_INCREMENT,所以返回0。
*/
echo mysql_insert_id()."<br />"
}
$updateresult = mysql_query($updateSQL)
if($updateresult !=FALSE){//更新 *** 作
$number = mysql_affected_rows()//大于0则成功
echo "更新影响行数:".$number."<br />"
}
$deleteresult = mysql_query($deleteSQL)
if($deleteresult !=FALSE){//更新 *** 作
$number = mysql_affected_rows()//大于0则成功
echo "删除影响行数:".$number."<br />"
}
mysql_close($db)//关闭连接,成功返回true,失败返回false。
?>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)