php提供多种操作数据库的方案:mysql扩展、mysqli扩展、PDO等。mysql扩展是伴随着php的产生而产生的,随着mysql数据库的发展mysql扩展不能够支持mysql数据库的一些新的特性如预加载功能,mysqli扩展应运而生,重新梳理了php对mysql数据库的支持,支持mysql数据库的新特性,同时把对mysql数据库的支持封装在一个类中,提高了操作效率。
1 mysql扩展
连接数据库
$conn = mysql_connect("127.0.0.1",'root','root');mysql_select_db('db');
连接失败返回false,产生警告信息,成功返回资源标识符
访问数据库
$result = mysql_query($sql);
增删改查都通过此句执行
查询操作失败返回false,产生警告信息,成功返回资源标识符
update\delete等操作失败返回false,产生警告信息,成功返回false
操作返回结果
面向过程方法查询返回的是资源标识符,mysql_fetch_array($result)返回当前行的数组其中key是字段名,如果没有更多行返回false
while($arr = mysql_fetch_array($result)){print_r($arr['name']);
}
总结
1 //连接失败产生警告信息不产生异常,返回false,代码继续执行,成功返回资源标识符2 //$conn = mysql_connect("10.1.1.11",'root','root@pwd@1231');3 //连接失败,抛出警告信息->输出提示->终止程序执行4 //$conn = mysql_connect("10.1.1.11",'root','root@pwd@1231') or die('连接失败!');5 //利用@抑制错误信息的显示6 //$conn = @mysql_connect("10.1.1.11",'root','root@pwd@1231');7
8 //选择数据库,成功返回true,失败返回false产生警告信息9 //mysql_select_db('token_conf');10
11
12 //操作数据库,成功返回true,失败返回false产生警告信息成功查询返回资源标识符,其他返回True13 //$result = mysql_query($sql);14 //综合考虑采用如下做法比较稳妥前提是项目关闭异常信息15 //调试模式下也可以直接这么写不用关闭异常
16 $conn = mysql_connect("127.0.0.1",'root','root');17 mysql_select_db('tf');18 $sql = "select * from t_user";19 $result = mysql_query($sql);20 if($result){21 while($arr = mysql_fetch_array($result)){22 print_r($arr['name']);23 }24 }else{25 print_r('数据库错误');26 }
2 mysqli扩展
mysqli扩展是在mysql扩展无法支持mysql数据库一些新的特性而产生的,它可以支持mysql数据库的新的特性如预处理等,提高了操作数据库的效率,主要使用方式如下:
连接数据库:
$db = new mysqli('127.0.0.1','root','pass','db');
操作数据库:
$result = $db->query($sql);
结果处理:
if($result){if($result->num_rows>0){while($row = $result->fetch_array()){print_r($row[1]);
}
}
}
完整代码:
$db_host="10.1.1.101"; //连接的服务器地址
$db_user="root"; //连接数据库的用户名
$db_psw="root@pwd@1231"; //连接数据库的密码
$db_name="db"; //连接的数据库名称
$mysqli=newmysqli();$mysqli->connect($db_host,$db_user,$db_psw,$db_name);$sql = "select * from t_user where name=?";$result = $mysqli->prepare($sql);$result->bind_param('s', 'ian');$result->execute();$result->bind_result($id,$name);while($result->fetch()){echo $id;echo $name;
}
3 PDO
PDO:php Data Object , 使用这种数据库扩展易于数据库的更换,一般项目开发使用这种方式
$db = new PDO('mysql:host=127.0.0.1;dbname=token_conf', 'root', 'root@pwd@1231');$result = $db->query("select * from t_user");if($result){foreach($result as $row){print_r($row);exit;
}
}