笔记
数据库基本操作
1.链接数据库
资源 mysql_connect(服务器地址,用户名,密码)
mysql_connect 默认对一个服务器只连接一次
再次连接返回相同资源
如果需要建立多次连接,多次新连接
mysql_connect('','','',true);
2.设置连接编码
mysql_query('');
mysql_set_charset('');
3.选定需要使用的数据库
mysql_quert();
mysql_select_db();
4.操作数据库,增删改查
5.关闭连接,主动释放资源
但是php脚本会自动释放
mysql_close($link);
----------------------------
数据库增删改
mysql_query(),返回true/false
inser/delete/update
-----------------------------
数据库查询
mysql_query(‘select...’);
show/desc等
数据返回的两种情况
成功:返回结果集,返回结果集为空也是正确的
失败:false
bool值为空也是返回成功
获取结果的行数
mysql_num_rows();
解析结果集
转换为php能解析的格式
把每条数据转换为数组返回
然后指针下移,直到移除结果集
mysql_fetch_assoc();
获取关联数组
表的表单名字为数组下标,元素值为数组元素
mysql_fetch_row();
获取索引数组
只获取数据的值,数组下标从0开始
自动索引
mysql_fetch_array();
获取关联或者索引,默认同时存在
一个记录取两次,形成一组为关联数组
一组为索引数组
可以使用第二个参数
MYSQL_ASSOC只获取关联数组
MUSQL_NUM 只获取索引数组
MYSQL_BOTH 获取两种
-------------------------------
相关函数
mysql_num_fields()获取指定结果集中所有的字段数
mysql_field_name()指定结果集中指定位置的字段名字
有关出错的函数
错误由mysql_query()这个函数的返回值判断
mysql_error();获取出错对应的提示信息
echo "mysql is bad!".mysql_error();
mysql_errno();获取出错对应的错误提示代号
echo "error number :".mysql_errno().'<br/>';
--------------------------------
mysql_insert_id();
获取上次插入操作的自增长ID
没有就自增长
添加,更新,查询我是分开写的
先创建一个数据库和表
create database news charset utf8;
create table n_news(
id int primary key auto_increment,
title varchar(50) not null comment '新闻标题',
istop tinyint not null comment '是否置顶',
content text comment '内容',
publiser varchar(20) not null comment '发布人',
pub_time int not null comment '发布时间'
);
databases.php是用来初始化的
<?php
header('content-type:text/html;charset=utf-8');
//数据库初始化
//连接数据库
mysql_connect('127.0.0.1:3306','root','root') or die('数据库连接失败');
//设定字符集
mysql_query('set names utf8');
//选择数据库
mysql_query('use news');
?>
insert.php
<?php
include_once 'databases.php';
//组织sql指令
$pub_time=time();
//添加
//{}独立的使用里面的变量
$sql = "insert into n_news values(null,'adsda',1,'程序员','admin',{$pub_time})";
if(mysql_query($sql)){
//成功
echo "insert OK!";
}else{
//失败
echo "insert bad!";
}
?>
select.php
<?php
include_once 'databases.php';
//组织sql指令
$pub_time=time();
//添加
//{}独立的使用里面的变量
$sql = "delete from n_news where id = 1";
if(mysql_query($sql)){
//成功
echo "delete OK!";
}else{
//失败
echo "delete bad!";
}
?>
select.php
<?php
//数据库查询
include_once 'databases.php';
$sql = "select * from n_news";
$res = mysql_query($sql);
//显示多少行数据
$rows = mysql_num_rows($res);
//解析结果
$row = mysql_fetch_assoc($res);
//把每条数据当做数组返回
//表单名称为数组下标,元素为数组元素
//自动索引,下标从0开始,数据值为元素
$row = mysql_fetch_row($res);
//两种同时获取
$row = mysql_fetch_array($res,MYSQL_BOTH);
echo "<prev>";
print_r($row);
echo "<hr/>";
//只获取表名为数组下标
$row = mysql_fetch_array($res,MYSQL_ASSOC);
echo "<prev>";
print_r($row);
echo "<hr/>";
//只获取自动索引
$row = mysql_fetch_array($res,MYSQL_NUM);
echo "<prev>";
print_r($row);
echo "<hr/>";
?>
updae.php
<?php
include_once 'databases.php';
//组织sql指令
$pub_time=time();
$i=4324;
//更新的时候通常根据ID进行更新
//{}独立的使用里面的变量
$sql = "update n_news set pub_time = $i where id = 2";
if(mysql_query($sql)){
//成功
echo "update OK!";
}else{
//失败
echo "update bad!";
}
?>
find.php
<?php
include_once 'databases.php';
$sql = "select * from n_news";
$res = mysql_query($sql);
//查看错误的提示信息
//查询当前结果集中所有的字段数量
//就是表单名的个数
echo mysql_num_fields($res);
//指定结果集指定位置的字段名
//位置从0开始
echo mysql_field_name($res, 1);
$pub_time=time();
$sql = "insert into n_news values(null,'adsda',1,'程序fff员','admin',{$pub_time})";
$res = mysql_query($sql);
if(!$res){
echo "error number :".mysql_errno().'<br/>';
echo "mysql is bad!".mysql_error().'<br/>';
exit();//出错就停止不准继续执行
}
echo mysql_insert_id();
?>