zoukankan      html  css  js  c++  java
  • 2016-08-10 多表联接、ER模型等

    $query = mysql_query($sql);
    mysql_fetch_array($query, mysql_both【既有数字下标,也有字段名下标】)
                                               mysql_assoc【只有字段名下标】 


    多表联接:
    1. 内联接
                      左外联接
    2.外联接: 右外联接
                      全联接
    例:学生表 student(表名)      no  name  age  sex
           成绩表 chengji(表名)     sno  kno  score
           SELECT  s.*, c.*  FROM  student  AS  s, chengji  AS  c  WHERE  s.no = c.sno  AND  s.name = '张三'; 

    主键:能唯一区分某个记录的键
    外键:在本表中不是主键,在另外一个表中是主键的键 

    ER模型图

    表与表之间的几种关系:
    一对一
    一对多
    多对多 


    mysql_affected_rows()    取得 insert  update  delete 之后,影响的行数
                                               不能得到select 查询的记录数
    mysql_insert_id()    取得 inert 刚刚插入的记录的id值
    mysql_num_rows()    返回结果集中行的数目。此命令仅对 SELECT 语句有效。要取得被 INSERT,UPDATE 或者 DELETE 查询所影                                        响到的行的数目,用 mysql_affected_rows()
    例:
    <?php
    $db = mysql_connect("localhost", "user", "password");
    mysql_select_db("database", $db);
    $result = mysql_query("SELECT * FROM table1", $db);
    $num_rows = mysql_num_rows($result);
    echo "$num_rows Rows ";
    ?> 
    注意: 如果使用 mysql_unbuffered_query(),则直到结果集中的所有行都被提取后 mysql_num_rows() 才能返回正确的值

    数据库操作步骤:
    // 连接数据库
    $db = mysql_connect("localhost", "root", "密码", "端口",...) or die("连接失败");
    // 选择数据库
    mysql_select_db("数据库名");
    // 设置数据库编码
    mysql_query("set names utf8");


    // 插入
    $sql = "insert into user(name,sex,age) values('张三','女',22)";
    $query=mysql_query($sql);
    $id = mysql_insert_id($db);
    $num = mysql_affected_rows($db);
    if($query){
      echo "<script>alert('插入成功');location.href='index.php';</script>";
    }else{
      echo "<script>alert('插入失败');location.href='add.php';</script>";
    }
     
    // 查询一条数据
    $sql="select * from user where id=5";
    $query=mysql_query($sql);
    $row = mysql_fetch_array($query);
    print_r($row);
     
    // 查询多条数据
    $sql="select * from user order by id asc limit 0,3";
    $query=mysql_query($sql);
    $num = mysql_num_rows();
    while($row = mysql_fetch_array($query){
      $rs[] = $row;
    }
    print_r($rs);
     
    // 修改
    $sql="update user set sex='男' where id=5";
    $query=mysql_query($sql);
    $num = mysql_affected_rows($db);
    if($query){
      echo "<script>alert('修改成功');location.href='index.php';</script>";
    }else{
      echo "<script>alert('修改失败');location.href='update.php'";
    }
     
    // 删除
    $sql="delete from user where id=5";
    $query=mysql_query($sql);
    $num = mysql_affected_rows($db);
    if($query){
      echo "<script>alert('删除成功');location.href='index.php';</script>";
    }else{
      echo "<script>alert('删除失败');location.href='list.php'";
    }
  • 相关阅读:
    看云学习文档列表
    linux&&ubutun 21.06使用查询资料
    element-admin 查询资料笔记
    tp6 composer install 报Your requirements could not be resolved to an installable set of packages。
    centos 7 install npm
    centos 7 dev
    解決npm run dev 报: 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件 错误
    解決vue-cli · Failed to download repo vuejs-templates/webpack: tunneling socket could not be established, cause=getaddrinfo ENOTFOUND 10809报错问题
    Linux创建命令快捷方式
    JS 闭包写法
  • 原文地址:https://www.cnblogs.com/shuguoqing/p/5796986.html
Copyright © 2011-2022 走看看