タイトルにあるように、現在は mysql_affected_rows() によって判断しています。これは、ほぼすべての update、delete、insert ステートメントの後に
if(mysql_affected_rows()!=1) という文が続く必要があることを意味します
{
エラー報告
}
もっと簡単な方法は何ですか?
mysql_affected_rows は、実行が成功したかどうかを確認するために使用されるのではなく、関連する SQL 命令が操作されたレコードの数を観察するために使用されます
if(执行sql语句){.....}else{......}
l_affected_rows 対象外実行が成功したかどうかの検査
は、関連する SQL 命令が実行されたレコードの数を観察するために使用されます
影響を受ける行が何行(0 行も含む)であっても、エラーではありません
影響を受ける行が何行(0 行を含む)であっても、エラーではありません
もちろん、これは知っています。 。 。
タイトルにあるように、常に mysql_affected_rows() によって判断されます。これは、ほぼすべての update、delete、insert 文の後に
if(mysql_affected_rows()!=1)
{
エラー レポートが続く必要があることを意味します。
}
聞いてください 何か簡単な方法はありますか?
削除 条件を満たすレコードが存在しない場合は削除されません。条件を満たすレコードが複数ある場合は、当然まとめて削除されます。
挿入は 100 件のレコードであっても 1 つのみに影響します。省略された挿入ステートメントを使用して挿入されます
これがトランザクションとどのような関係があるのかわかりません
update 条件を満たすレコードがない場合、変更された値が同じ場合は変更されません。元の値のままでは実際には変更されません
delete 条件を満たすレコードが無い場合は削除されません 条件を満たすレコードが複数ある場合は当然レコードも削除されます
insert のみに影響します。短縮された挿入ステートメントを使用して 100 個が挿入されたとしても 1 つ
これがトランザクションと何の関係があるのかわかりません
update 条件を満たすレコードがない場合、変更されません。 変更された値が元の値と同じ場合、実際には変更されません。
削除 条件を満たすレコードがない場合。複数のレコードがある場合、条件を満たすレコードは自然にまとめて削除されます
短縮された挿入ステートメントを使用して 100 件のレコードが挿入された場合でも、挿入は 1 つのレコードにのみ影響します
これが何なのかわかりません取引に関係があります
$result = mysql_query("update ……")if ($result !== false){ echo "exec success";}else{ echo "exec error:".mysql_error():}
update 没有符合条件的记录,就不会修改,如果被修改的值和原值一样,则修改不会真正发生
delete 没有符合条件的记录,就不会删除,如果有多条符合条件的记录,自然也就一并删除了
insert 只会影响一条,哪怕是用缩略写法的 insert 语句插入了 100 条
看不出这与事务有什么关系
$result = mysql_query("update ……")if ($result !== false){ echo "exec success";}else{ echo "exec error:".mysql_error():}
如果你不放心 update ... set money=money-1 会真实执行的话
那么你是否需要再 select 一下,确认 money 减少了 1,而不是减少了 100 呢?
$result = mysql_query("update ……")
只有在 sql 指令是错误的情况下,才会返回 false
所以并不需要去试
如果你不放心 update ... set money=money-1 会真实执行的话
那么你是否需要再 select 一下,确认 money 减少了 1,而不是减少了 100 呢?
$result = mysql_query("update ……")
只有在 sql 指令是错误的情况下,才会返回 false
所以并不需要去试
如果你不放心 update ... set money=money-1 会真实执行的话
那么你是否需要再 select 一下,确认 money 减少了 1,而不是减少了 100 呢?
$result = mysql_query("update ……")
只有在 sql 指令是错误的情况下,才会返回 false
所以并不需要去试