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
  • 相关阅读:
    人生的意义:
    instancetype和id的区别,objective-c
    iOS多线程系统整理 swift
    系统整理 精讲 swift 泛型
    swift学习笔记7
    swift学习笔记6
    swift学习笔记5
    [iOS开发日记]简易计算器
    [ocUI日记]UIImage和UIImageview
    [ocUI日记]UIwindow和UIview
  • 原文地址:https://www.cnblogs.com/zsczsc/p/6119537.html
Copyright © 2011-2022 走看看