zoukankan      html  css  js  c++  java
  • PHP数据访问基础知识(20161028)

    数据访问

    动态页面的特征:能够读取数据库,网页的内容都是从数据库读出来的,而不是写死的

    所有的程序归根结底都是对数据的增删改查

    如何用服务器的PHP来操作服务器的MySQL,Apache则是用来管理,接收用户的请求,返回用户的请求、信息

    要想实现数据访问,首先要在PHP和MySQL之间建立一个数据的通道,即:建一个连接,造一个连接对象

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
    
    <body>
    <?php
    
    //建一个连接,造一个连接对象
    $db = new MySQLi("localhost","root","数据库密码","1016");
    //MySQLi可以小写,也可以大写;MySQL数据库      MySQLi数据库扩展,php里面针对MySQL数据访问扩展的一个类
    //研究一个类,要先研究它的构造方法,因为你要new一个新的类,这就用到了构造方法
    //$db = new MySQLi("localhost(host,连接数据库的地址,如果要连接别人的数据库就输入IP地址【因为所有互联网上的地址都是IP地址】或者是如果服务器上有域名的话也可以输入域名【域名就是www.baidu.com之类,域名会和IP地址绑定,输入域名之后会找到绑定的IP地址,根据IP地址,找到服务器】本地的话就是localhost,如果另一个人在同一个局域网下就是另一个人的IP地址)","root"(username,MySQL数据库的用户名),"数据库密码"(password,数据库密码【也可以不输入密码,有密码的话权限稍多】),"1016"(数据库名称),"3306"(port,数据库的端口号,默认为3306,Apache的为80,一般不写),""(socket,套接字,使应用程序能够读写与收发通讯协定(protocol)与资料的程序;一般不写));
    
    //判断是否出错
    /*if(mysqli_connect_error())//返回true,false
    {
        echo "连接失败!";
        exit;
    }*/
    
    mysqli_connect_error()?die("连接失败"):"";//die方法,是不是出错了
    
    //写SQL语句
    $sql = "select * from Info";
    
    //通过连接执行SQL语句,返回结果集对象(注:是一个对象,不是值!)   query方法是一个连接方法
    $reslut = $db->query($sql);
    
    //从结果集中读取数据,返回数组
    //$attr = $reslut->fetch_all(); 
    //读取所有数据,返回索引二维数组(即一条数据里面还有数据)        fetch_all()这个方法没有提示,只能硬写,而且使用这个方法有条件,如果服务器配置不完全则不能正常使用,慎用!
    
    //$attr = $reslut->fetch_array(); //读取当前指针指向的数据,返回索引关联都存在的数组(执行第一次读第一条,执行第二次读第二条)
    
    //$attr = $reslut->fetch_assoc(); //返回关联数组
    
    //$attr = $reslut->fetch_row(); //返回索引数组
    
    //$attr = $reslut->fetch_object(); //返回对象
    
    //var_dump($attr);
    /*$arr = array();(外层定义了一个空数组)
    while($attr = $reslut->fetch_row())(小数组取数据)
    {
        array_push($arr,$attr);(里层每取到一个小数组,就往大数组里面扔)
    }
    
    var_dump($arr);*/
    
    
    
    
    
    
    
    
    
    
    
    ?>
    
    </body>
    </html>
    1028morningtest.php
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
    
    <body>
    
    <?php
    
    $db = new MySQLi("localhost","root","数据库密码","1016");
    
    $sql = "delete from info where code='p009'";
    
    $result = $db->query($sql);
    //如果sql语句不是一个查询语句,则返回的结果集result就是true或者false,所以查询和增删改有不同的处理方式.如果是增删改语句直接判断result即可,查询的话需要用到前面说的几个方法去读
    
    //var_dump($result);
    
    /*if($result)
    {
        echo "执行成功!";    
    }
    else
    {
        echo "执行失败!";    
    }
    */
    
    /*
    $result->fetch_row();若果增删改语句用了如同左边的查询的方法,则会报错显示:
    Fatal error: Call to a member function fetch_row()
    出现上述错误的另一种情况是sql语句写错了
    */
    
    
    ?>
    
    
    
    
    
    
    
    
    </body>
    </html>
    1028morningtest1.php
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
    
    <body>
    
    <?php
    
    //所有的程序都是对数据的增删改查
    
    //阿帕奇起到的是管理作用
    
    /*实现PHP对数据库的访问:
    
    
    /*$db = new MySQLi("localhost","root","数据库密码","test");//建立一个连接,造一个连接对象
    
    mysqli_connect_error()? die("失败"):"";//判断连接是否出错
    
    $sql = "select * from info";//sql语句
    
    $result = $db->query($sql);//执行sql语句并返回一个结果集对象
    
    $attr = $result->fetch_all();//遍历结果集对象并返回一个数组
    
    var_dump($attr);//输出数组
    */
    
    
     // == 是一个操作符,它检测两个变量是否相等,并返回一个布尔值
    
    /*var_dump ((bool)  "" );         // bool(false)
     var_dump ((bool)  1 );          // bool(true)
     var_dump ((bool) - 2 );         // bool(true)
     var_dump ((bool)  "foo" );      // bool(true)
     var_dump ((bool)  2.3e5 );      // bool(true)
     var_dump ((bool) array( 12 ));  // bool(true)
     var_dump ((bool) array());    // bool(false)
     var_dump ((bool)  "false" );    // bool(true)*/
    
    //echo substr_replace($a,"***",0,5); //替换指定位置的字符串
    //第一个参数是要替换的字符串
    //第二个参数是替换的字符串
    //第三个参数是开始位置
    //第四个参数是替换长度
    
    //echo str_replace("|","?",$a); //查找替换
    //第一个参数是要查找的字符串
    //第二个参数是要替换的字符串
    //第三个参数是被操作的字符
     
    
    ?> 
    
    
    
    
    
    
    
    
    
    
    
    </body>
    </html>
    1028zixi.php
  • 相关阅读:
    SSL JudgeOnline 1194——最佳乘车
    SSL JudgeOnline 1457——翻币问题
    SSL JudgeOnlie 2324——细胞问题
    SSL JudgeOnline 1456——骑士旅行
    SSL JudgeOnline 1455——电子老鼠闯迷宫
    SSL JudgeOnline 2253——新型计算器
    SSL JudgeOnline 1198——求逆序对数
    SSL JudgeOnline 1099——USACO 1.4 母亲的牛奶
    SSL JudgeOnline 1668——小车载人问题
    SSL JudgeOnline 1089——USACO 1.2 方块转换
  • 原文地址:https://www.cnblogs.com/zsczsc/p/6119537.html
Copyright © 2011-2022 走看看