zoukankan      html  css  js  c++  java
  • PHP链接数据库

    1. PHP内置函数介绍
    先介绍一些PHP的常用函数作为参考,再进行操作就很容易了。

    1) 连接数据库

     Mysql_connect(ip,用户名,密码) or die (‘连接失败!’);

    2) 选择数据库(两种方法)

    方法一: Mysql_query(‘use 数据库名’);

    方法二: Mysql_select_db(‘数据库名’);

    3)设置客户端的字符编码

    如果遇到了乱码的问题加入下面这串代码就ok了。

    sql_query(set names UTF-8);//解决字符乱码问题

    4)执行SQL语句

    Mysql_query(SQL语句);

    5)从结果集中取得一行作为数组返回查询结果

    mysql_fetch_row();

    该函数主要用于查询结果集,其区别在于函数的返回值不是一个字符串,而是一个数组。在取出最后一行后,函数将返回false,循环结束。就可以把结果集中的所有数据逐行取出并显示。

    实例:

    <?php

    $sql = mysql_query("select * from table_name");//将表table_name的全部数据存放到$sql

    $row = mysql_fetch_row($sql);//获取$sql里面的第一个数据作为数组存储在$row中

    if ($_POST["Submit"]=="查询"){
    //如果从前端接收到的value为‘查询’

        $keyword= $_POST["red"];//从前端接收到的查询关键字存储到$name

        $sql = mysql_query("select * from table_name where color like '%".trim($keyword)."%'"); //执行模糊查询

        $row = mysql_fetch_row($sql);  //逐行获取查询结果,返回值为数组

    }

    ?>
    ​​​​​​

    2. 连接数据库
    一般在公司里面都是框架的二次开发,不会涉及到自己写连接数据库的代码。说白了,无非是数据库连接的函数使用。

    实例:

    方式一:

    <?php

    $link=@Mysql_connect(‘URL’,’数据库账号’,’数据库密码’) or die (‘连接失败!’);

    Mysql_select_db(‘数据库名称’) or die (‘选择失败!’);

    ?>
    方式二:

    <?php
    $myhost = 'localhost:3306'; // mysql服务器主机地址
    $myusername = 'root'; // mysql用户名
    $mypassword = 'DJun'; // mysql用户名密码
    $conn = mysqli_connect($myhost , $myusername , $mypassword );
    if(! $connect )
    {
    die('连接失败: ' . mysqli_error($connect ));
    }

    mysqli_query($connect , "set names utf8");// 设置编码,防止中文乱码
    3. 实现增删改查
    增删改查可以通过三种方式实现:命令化界面(CMD)、网页代码、软件。

    在命令化的界面和网页代码中,增删改查对应四类SQL语句,原理都是一样的。另外一种方式就是使用如Navicat类似软件图形化操作。简单的为大家介绍四类SQL语句:

    1)增添数据 
    在标准SQL语句中的INSERT语句形式:

    INSERT INTO tablename(表名) VALUES(列值);
    实例:

    INSERT INTO users(id, name, age) VALUES(1102, 'DJun', 21);
    而在MySQL中还有另一种形式:

    INSERT INTO tablename SET column_name1 = value1, column_name2 = value2,…;
    实例:

    INSERT INTO users SET id = 1102, name = 'DJun', age = 21;
    2)删除数据
    通用语法:

    (补充:[WHERE Clause] 表示的是筛选数据的语句 )

    DELETE FROM table_name [WHERE Clause]
    实例:

    DELETE FROM users WHERE name='DJun';
    3)修改数据
    通用语法:

    UPDATE table_name SET field1=new-value1, field2=new-value2[WHERE Clause]
    实例:

    UPDATE users SET name='DJun' WHERE id=1102;
    4)查询数据
    通用语法:

    (补充:* 号表示查询全部的数据;若是该表中的每一列数据不是全部都要使用的话,将*改成如id,name等字段。数据量大的话这样处理可增加查询速度)

    SELECT * FROM table_name [WHERE Clause];
    实例:

    用逗号分割,列出需要显示的字段

    select id,name,age from users;
    数据量大的话均存在数据重复的问题,若需要查询不重复记录该如何处理?如果需要按照条件查询该如何处理?如果是商品重复了,需要统计整合这个商品的数量该如何处理?

    查询不重复的数据
    通用语法:

    select distinct 字段 from 表名;
    实例:

    select distinct name from users;//查询名字不相同的用户;
    select distinct name,age from students;//查询名字和年龄同时不同的用户
    注意:

    distinct必须放在最开头
    distinct只能使用需要去重的字段进行操作。 ----也就是说我distinct了name,age两个字段,我后面想根据id进行排序,是不可以的,因为只 能name,age两个字段进行操作.
    distinct去重多个字段时。就是说:几个字段同时重复时才会被过滤。
    条件查询
    通用语法:

    select 字段 from 表名 where 条件;
    实例:

    select * from users where sex='男' and age>20;
    筛选出来的数据如果需要按照年龄来升序(ASC)或降序(DESC)排序的话:

    只需在SELECET的语句最后加上 by age ASC或 by age DESC。

    如果希望只取出年龄最小的前五个人的数据的话:

    select ... [limit 起始偏移量,行数]

    SELECT * from users ORDER BY age ASC limit 0,5;
    数据整合(聚合)
    通用语法:

    select 聚合函数(字段) 表名 [where Clause] [group by field1,field2...] [with rollup] [having 条件];
    补充:

    1. 聚合函数(字段) ,常用的四个聚合函数 : sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。

    2.group by关键字 表示要进行分类聚合的字段。比如要按照部门分类统计员工数量,部门就应该写在group by 后面。

    3.with rollup 是可选语法,表明是否对分类聚合后的结果进行再汇总

    4.having 关键字表示对分类后的结果再进行条件过滤。

    实例:

    //得到与id为1的年龄相同的用户的用户名并按照这些用户的注册时间按升序排列
    SELECT username,count(1) FROM users GROUP BY age ORDER BY createtime ASC;

    //得到与id为1的年龄相同的用户且人数大于4的用户名
    SELECT username,count(1) FROM users GROUP BY age HAVING count(1)>4;

    //统计与id为1的年龄相同的用户的薪水总额,最低薪资,最高薪资
    SELECT count(1),min(salary),max(salary) FROM users GROUP BY age;
    实现增删查改,无非是执行相应的sql语句。或者说是执行动态的sql 语句,可以执行在程序中给sql 语句的某个参数赋值后,执行sql实现功能。

  • 相关阅读:
    不要抱怨网速慢,只怪你自己不会调快网速
    2014年6月27日 几何和排列 答案
    我的世界杯生活
    javascript设计模式--备忘录模式(Memento)
    翻译:AngularJS应用的认证技术
    javascript设计模式--状态模式(State)
    一张思维导图说明jQuery的AJAX请求机制
    数据库设计中的14个技巧
    密室经典逃脱N部--考验你的智力!据说全球没几人走出去!不要看攻略!【工作之余也来休闲一下】
    关于编程,大学没有传授的10件事
  • 原文地址:https://www.cnblogs.com/liufuyuan/p/11448360.html
Copyright © 2011-2022 走看看