msql数据库触发器和连接mysql常用函数

触发器
delimiter $$(设置$$为语句结束符)
例:
delimiter $$
create trigger jiaobanfei after update on user1     
for each row
begin
update user2 set age=age+(old.num-new.num);
update user2 set num=num+1;
end
$$
delimiter;


old.age-new.age

删除;drop trigger jiaobanfei;

update user1 set num=num-4 where id=1;

注意;1、触发器不能同名
     2、目前mysql只支持一类事件设置一个触发器

在触发器内,获得触发改触发程序时的数据:
利用触发程序内的new和old来完成

old:旧的数据,在时间发生之前的数据
new:监听表上,事件发生之后的数据

事件是insert,不能使用old
事件是delete,不能使用new

如果一个触发程序,由多条sql语句组成:
应该;1、语句组成语句块(begin,end)来标识语句块
   2、语句快的语句需要独立的语句结束符,分号

   命令行:由于触发器程序内使用分号作为语句结束符,那么当命令行客户
   端碰到分号时,就应该理解成触发器程序内子语句结束,而不是整个创建触发器的语句结束

   应该通过修改命令行的语句结束符达到目的,
   Delimiter语句可以完成设置语句结束符




测试  :insert into on duplicate key update (如果插入的数据时,主键重复,则为修改操作)
        replalce


php操作mysql的客户端有三个
msyql,mysqli,pdo

测试函数是否可用
var_dump(function_exists('mysql_connect'));

常见的:show,desc,select 返回结果集

         insert,update ,delete返回布尔值



ASSOC:关联数组
row;索引数组
array:混合数组

fetch只能获得一条,但是可以自动移动,结果集的记录指针,配合循环结构,完成所有数据的操作




mysql 错误:
获得错误信息;
mysql_error();错误信息
mysql_errno();错误编号

1、获得结果集内的数据量
mysql_num_rows(结果集)
  查

2、操作后,受影响的行数
mysql_affected_rows();
适用于 增删改

3、获得最新的自动增长的字段的值,通常是id主键
mysql_insert_id();

4、如果资源使用完毕,应该释放资源
mysql_free_result(结果集);


需要释放的资源;复合类型的数据(数组,对象),资源
unset一下变量就行

原文地址:https://www.cnblogs.com/hhfhmf/p/4830987.html