php基础04(MySQL)
1.SQL
Structured Query Language :结构化查询语言,SQL是操作和管理数据库的语言。
常用的4条sql语句:增删改查。 核心的就这4条
一、增加数据:
语法:insert into
tb_name(title, author, content, addate) values('从8月开始,我们接受了', 'admin', '具体内容....', 14352645646);
注意事项:
(1)字段列表与值得内容列表,个数和顺序必须一致
(2)id字段不需要管他,他是自动增长型
二、删除记录:
语法:delete from tb_name [where 条件];
eg: delete from news where id=3;
delete from news where id > 10 and id < 20; // 删除20>id>10的记录
delete from news where id > 10 and author = 'admin';
删除所有记录:
TRUNCATE tb_name; // 删除所有数据,并且重新将id值归0.速度十分快.
与delete from tb_name要快得多
三、修改
语法:UPDATE tb_name SET 字段1 = 新值1, 字段2 = 新值2[WHERE 条件];
*注意:更新数据的时候,一定要指定where条件,否则,整个表都会更新为一样。
举例:
UPDATE news SET author = 'zhangsan', hits = 10000 where id = 10;
四、查询数据
语法: SELECT * 字段列表 FROM tb_name [WHERE 条件] [ORDER BY 字段 ASC|DESC] [LIMIT 限定输出结果]
limit:限制输出的记录数
eg:select * from tb_news where id < 2000 and id > 1000 order by id asc, addate desc limit 50,500;
用于分页很多:
LIMIT startrows,rows; // 从startrows开始,不包括startrows,输出rows条数据
LIMIT 0,10 // 从第0行起,输出10条记录,不包括第0行
LIMIT 1,10 // 从第1行起,输出10条记录,不包括第1行
LIMIT 15,10 // 从第15行起,输出10条记录,不包括第15行
where id between 90 and 100
like 预算福:实现字段模糊查询.比如:查询所有标题中海油北京的所有记录.
where title like '%北京%'; // 标题中含有北京的记录
where author LIKE 'a%'; // 查询以'a'字符开头的作者
五、php操作MySQL
MySQL客户端(命令行)四步步骤:
第一步:链接到MySQL数据库服务器
Mysql -hlocalhost(主机名) -uroot(用户名) -proot(用户密码)
eg: mysql -h127.0.0.1 -uroot -proot
第二步:选择要操作的数据库
use db_name;
第三步:设置当前环境的显示字符集
set names gbk; // dos 命令下只能用gbk
第四步:执行SQL语句
增加:insert into tb_name (字段1, 字段2, 字段3) values (属性值1, 属性值2, 属性值3);
删除:delete from tb_name [where 条件]
删除整个表中的记录:truncate tb_name;
修改:update tb_name set 字段1=值 , 字段2 = 值[where 条件];
查询:select 字段列表 * from tb_name[where 条件][order by 字段 asc/desc][limit 限定记录];
php中操作mysql数据库:
第一步:链接MySQL数据库服务器 mysql_connect()
语法结构: $link = mysql_connect($db_host, $db_user, $db_pwd);
参数说明:
$db_host: 指定要链接的MySQL服务器的主机名或者IP地址,如:localhost:3306
$db_user: 指定用户名,默认root
$db_pwd:指定用户密码,默认root
返回值:如果链接MySQL成功,将返回一个资源标识符,如果链接失败,则返回false.
eg: $link = mysql_connect("localhost", "root", "root");
在页面上,如果没有任何返回值的话,就是链接成功的,否则会报错的.
注意:资源类型的数据,改成布尔型,一律为真(true)
屏蔽php中的错误信息显示:用@符号
$link = @mysql_connect("localhost", "root", "root");
mysql_error() 显示上一次MySQL的出错文本信息
第二步:选择数据库
语法:bool mysql_select_db(string $database_name [, resource $ link_identifier])
返回值:成功选择数据库返回true ,选择数据库失败返回false
参数说明:resource $link_identifier 是可选项,指定当前的活动链接标识符,当前活动链接只有一个.如果省略,则使用上一次联通数据库的标识符.一般$link只有一个.
eg:
$link = @mysql_connect("localhost", "root", "root");
mysql_select_db(“db_name”, $link);
注意: exit()或die(); // 中断或退出程序
语法:exit("先输出exit信息,再退出"); // 退出
注意:if(@mysql_select_db($db_name, $link))
是mysql_select_db() 而不是 mysqli_select_db()
第三步:设置返回数据的字符集
Mysql_query("set names utf8");
注意:mysql是 utf8 其余基本是utf-8
第四步:数据库操作 SQL语句操作
mysql_fetch_assoc()
函数从结果集中取得一行作为关联数组。
返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。
服务器返回数据到客户端,编码有可能会改变。因为二进制返回.所以需要: mysql_query("set names utf8");
eg:
while($row=mysql_fetch_assoc($result)){
dump($row); // 打印
}
注意:如果执行:SELECT, SHOW, DESCRIBE语句成功返回资源标识符resource,如果失败就是false
其他SQL语句(delete, update, insert)
数组分为:枚举数组 和 关联数组
while($row = mysql_fetch_row($result_2)){
// 数组分为美剧数组和关联数组
$arr[] = $row;
// 将每一个$row数组,存到$arr中去,生辰过一个二维数组}
dump($arr);
php define:
define("DB_NAME", "db_liao");
echo("DB_NAME");
六、导入.sql到数据库
参考:http://jingyan.baidu.com/article/cbf0e500d15c762eab289362.html
*注意:source d:/test.sql
; 这样步奏的时候.我们一般是将.sql
文件拖入到命令行,其样子是:d:\test.sql。我们需要收到将''改为'/'才行.
*注意:使用dreamweaver开发,效率会变得高.不过,它没得代码提示