使用php从web访问mysql

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产生警告信息成功查询返回资源标识符,其他返回True
13     //$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=new mysqli();
    $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;
    }
}

 

 

 

posted @ 2012-08-11 12:14  compus135  阅读(1756)  评论(0编辑  收藏  举报