有一张表temp(id,num)已经存在,现在想添加信息
   insert into temp values(1,1);
   要求:
   如果已经存在要插入的id号,则更新此条信息.
   .
   问题在于,如何根据插入语句判断是否成功,然后再选择更新语句.
   mysql_query(),mysql_affected_rows()这2个函数是怎么用的,请写清楚点.
   最好用事务封装一下.谢谢

解决方案 »

  1.   

    temp表的id 列如果是主键列 判断主键的错误~
      

  2.   

    如果先要进行判断的话这样没一条插入或是更新都要执行2条语句,即先select 再进行要的操作,这样效率会降低一倍.
    我想直接进行操作,通过那2个函数判断所得的结果值,如果没有执行再执行别的操作,可不知道怎么使用这2个函数.
    sql server中有个全局变量,可mysql中我不知道怎么来使用,请给个例子.
      

  3.   

    你这种应用逻辑不太好,
    应该先按照PK值进行判断,是否存在 此记录,如果存在,则update
    否则,insert
    这样做更加通用一些。
    至于affected_rows()
    如果插入失败,返回0
    插入成功,返回1
    更新成功,返回的是实际上更新的行数(不一定只影响一行,要看你是否带PK值来update)
      

  4.   

    用 replace into 不行吗?
      

  5.   

    select count(*) from ... into @cnt;
    if @cnt > 0 then
     update ...
    else
     insert ...
    end if;