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\n";
?>
注意: 如果使用 mysql_unbuffered_query(),则直到结果集中的所有行都被提取后 mysql_num_rows() 才能返回正确的值
数据库操作步骤:
// 连接数据库
$db = mysql_connect("localhost", "root", "密码", "端口",...) or die("连接失败");
// 选择数据库
mysql_select_db("数据库名");
// 设置数据库编码
mysql_query("set names utf8");
// 插入