Table des matières
回复讨论(解决方案)
Maison développement back-end tutoriel php MySQL如何确认update,delete,insert语句成功执行?

MySQL如何确认update,delete,insert语句成功执行?

Jun 23, 2016 pm 01:26 PM
delete

如题,现在一直通过mysql_affected_rows()在判断,这样的话就造成几乎每一句update,delete,insert后面必然要跟一句
if(mysql_affected_rows()!=1)
{
报错
}

请问有什么更简便的办法吗?


回复讨论(解决方案)

mysql_affected_rows 不是用于检查执行是否成功的
而是用于观察相关 sql 指令对多少记录进行了操作

直接

if(执行sql语句){.....}else{......}
Copier après la connexion

mysql_affected_rows 不是用于检查执行是否成功的
而是用于观察相关 sql 指令对多少记录进行了操作


是我表述问题。我就是想判断insert,delete,update语句成功地影响了至少1行

判断影响了几行mysql_affected_rows() 肯定是要执行的。

无论影响多少行(包括0行)都不是错误

无论影响多少行(包括0行)都不是错误


这我当然知道。。。

如题,现在一直通过mysql_affected_rows()在判断,这样的话就造成几乎每一句update,delete,insert后面必然要跟一句
if(mysql_affected_rows()!=1)
{
报错
}

请问有什么更简便的办法吗?



补充一下,我是要判断update,delete,insert语句至少影响了1行,似乎大部分情况下都需要这样的判断逻辑
就是因为即使update,delete,insert影响了0行,事务也不会回滚,所以会产生这个问题

update 没有符合条件的记录,就不会修改,如果被修改的值和原值一样,则修改不会真正发生
delete 没有符合条件的记录,就不会删除,如果有多条符合条件的记录,自然也就一并删除了
insert 只会影响一条,哪怕是用缩略写法的 insert 语句插入了 100 条

看不出这与事务有什么关系

update 没有符合条件的记录,就不会修改,如果被修改的值和原值一样,则修改不会真正发生
delete 没有符合条件的记录,就不会删除,如果有多条符合条件的记录,自然也就一并删除了
insert 只会影响一条,哪怕是用缩略写法的 insert 语句插入了 100 条

看不出这与事务有什么关系



想了一下,你说的有道理。
我把我的疑问举个例子:
比如用户要用虚拟货币购买虚拟物品,在update ... set money= ... where user_id=... 这条语句执行后,需不需要mysql_affected_rows()来验证成功update了1行呢?我担心没真正update到money字段,然后就执行了下面给该用户添加虚拟物品的业务
如果在之前执行了select money from ... for update,就能保证万无一失吗?


update 没有符合条件的记录,就不会修改,如果被修改的值和原值一样,则修改不会真正发生
delete 没有符合条件的记录,就不会删除,如果有多条符合条件的记录,自然也就一并删除了
insert 只会影响一条,哪怕是用缩略写法的 insert 语句插入了 100 条

看不出这与事务有什么关系



想了一下,你说的有道理。
我把我的疑问举个例子:
比如用户要用虚拟货币购买虚拟物品,在update ... set money= ... where user_id=... 这条语句执行后,需不需要mysql_affected_rows()来验证成功update了1行呢?我担心没真正update到money字段,然后就执行了下面给该用户添加虚拟物品的业务
如果在之前执行了select money from ... for update,就能保证万无一失吗?


直接if (update操作....){购买成功...}else{购买失败....}不就好了,update操作失败返回的是false

$result = mysql_query("update ……")if ($result !== false){    echo "exec success";}else{    echo "exec error:".mysql_error():}
Copier après la connexion
Copier après la connexion



update 没有符合条件的记录,就不会修改,如果被修改的值和原值一样,则修改不会真正发生
delete 没有符合条件的记录,就不会删除,如果有多条符合条件的记录,自然也就一并删除了
insert 只会影响一条,哪怕是用缩略写法的 insert 语句插入了 100 条

看不出这与事务有什么关系



想了一下,你说的有道理。
我把我的疑问举个例子:
比如用户要用虚拟货币购买虚拟物品,在update ... set money= ... where user_id=... 这条语句执行后,需不需要mysql_affected_rows()来验证成功update了1行呢?我担心没真正update到money字段,然后就执行了下面给该用户添加虚拟物品的业务
如果在之前执行了select money from ... for update,就能保证万无一失吗?


直接if (update操作....){购买成功...}else{购买失败....}不就好了,update操作失败返回的是false



好的我决定试一下,看起来比mysql_affected_rows简洁,不知道效果上有没有什么细微差别

$result = mysql_query("update ……")if ($result !== false){    echo "exec success";}else{    echo "exec error:".mysql_error():}
Copier après la connexion
Copier après la connexion



同上,谢谢,准备试一下效果

如果你不放心 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 
所以并不需要去试


好的,感觉你说的听起来比较靠谱,谢谢。
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la touche Suppr du clavier ? Quelle est la touche Suppr du clavier ? Mar 16, 2023 pm 04:48 PM

Il existe deux touches de suppression du clavier : la touche Suppr (supprimer) et la touche Retour arrière. La touche Retour arrière est également appelée touche Retour arrière. Cette touche peut supprimer le contenu du texte devant le curseur et la touche Supprimer peut supprimer les caractères, les fichiers et les objets sélectionnés. Chaque fois que vous appuyez sur la touche Suppr, un caractère à droite du curseur sera supprimé, et le caractère à droite du curseur se déplacera d'une image vers la gauche lorsqu'un ou plusieurs fichiers/dossiers sont sélectionnés, appuyez sur la touche Suppr ; touche pour supprimer rapidement ; dans certaines applications Sélectionnez un objet dans le programme et appuyez sur la touche Suppr pour supprimer rapidement l'objet sélectionné.

Quelle est la fonction de la touche Supprimer Quelle est la fonction de la touche Supprimer Mar 10, 2023 pm 06:07 PM

Les fonctions de la touche Suppr sont les suivantes : 1. Supprimer des caractères ; chaque fois que la touche Suppr est enfoncée, un caractère à droite du curseur sera supprimé et le caractère à droite du curseur se déplacera d'une image vers la gauche. 2. Supprimez les fichiers ; lorsqu'un ou plusieurs fichiers/dossiers sont sélectionnés, appuyez sur la touche Suppr pour les supprimer rapidement (déplacez-vous vers la corbeille pour la récupération). 3. Supprimez l'objet sélectionné ; sélectionnez un objet dans certaines applications et appuyez sur la touche Suppr pour supprimer rapidement l'objet sélectionné.

Comment contrôler + Alt + Suppr : didacticiel Mac Comment contrôler + Alt + Suppr : didacticiel Mac Apr 16, 2023 pm 12:37 PM

Ctrl+Alt+Suppr : mode "Mac" Ctrlaltdel est une combinaison de touches courante utilisée par les utilisateurs Windows pour ouvrir le Gestionnaire des tâches. Ils quittent généralement les applications indésirables du menu du gestionnaire pour libérer de l'espace sur leur ordinateur. La variante Mac Control+Alt+Delete vous permet d'ouvrir le menu Forcer à quitter. Si les utilisateurs de Mac souhaitent quitter le programme à l'origine du problème ou afficher les programmes ouverts, ils peuvent interagir avec le menu pour approfondir leurs recherches. Comment effectuer ControlAltDelete sur Mac ? Si vous avez des applications qui fonctionnent mal, vous devez utiliser cette combinaison de touches pour

Les fichiers supprimés peuvent-ils être récupérés ? Les fichiers supprimés peuvent-ils être récupérés ? Feb 24, 2023 pm 03:49 PM

Les fichiers supprimés par suppression peuvent être récupérés car lorsque les utilisateurs utilisent la suppression pour supprimer des fichiers, ces fichiers seront déplacés vers la corbeille et ne seront pas complètement supprimés. Méthode de récupération : 1. Ouvrez la « Corbeille », sélectionnez le fichier que vous souhaitez restaurer et cliquez sur « Restaurer cet élément » 2. Ouvrez la « Corbeille », sélectionnez le fichier que vous souhaitez restaurer et utilisez le raccourci d'annulation ; "ctrl+z".

Comment ajouter, modifier et supprimer des lignes de tableau dans jQuery ? Comment ajouter, modifier et supprimer des lignes de tableau dans jQuery ? Sep 05, 2023 pm 09:49 PM

À l'ère actuelle du développement Web, une gestion efficace et efficiente des tables est devenue très importante, en particulier lorsqu'il s'agit d'applications Web gourmandes en données. La possibilité d'ajouter, de modifier et de supprimer dynamiquement des lignes d'un tableau peut améliorer considérablement l'expérience utilisateur et rendre les applications plus interactives. Un moyen efficace d’y parvenir consiste à exploiter la puissance de jQuery. jQuery fournit de nombreuses fonctionnalités pour aider les développeurs à effectuer des opérations. Lignes de tableau Une ligne de tableau est une collection de données interdépendantes, représentées par des éléments en HTML. Il permet de regrouper des cellules (représentées par des éléments) dans un tableau. Chaque élément est utilisé pour définir une ligne dans le tableau, et pour les tableaux multi-attributs, il contient généralement un ou plusieurs éléments. Syntaxe$(sélecteur).append(co

Comment utiliser les requêtes PUT et Supprimer dans SpringBoot Comment utiliser les requêtes PUT et Supprimer dans SpringBoot May 13, 2023 pm 12:16 PM

Les requêtes PUT et Delete sont utilisées dans le formulaire Form et ne prennent en charge que les méthodes get et post. Afin d'implémenter la méthode put, nous pouvons l'implémenter en suivant les trois étapes suivantes : 1) Configurer HiddenHttpMethodFilter dans SpringMVC 2) Créer un formulaire de publication sur le formulaire. page 3) Créez un élément d'entrée, nom ="_method", la valeur est la méthode de requête spécifiée. Obtenez la valeur de "_method" dans la classe HiddenHttpMethodFilter pour obtenir la nouvelle méthode de requête. La balise th est le modèle thymeleaf, ce qui signifie que uniquement lorsque l'employé

Comment utiliser la base de données Supprimer Comment utiliser la base de données Supprimer Nov 13, 2023 am 11:50 AM

Utilisation de la suppression de la base de données : 1. Supprimer un seul enregistrement ; 2. Supprimer plusieurs enregistrements ; 3. Supprimer tous les enregistrements dans des conditions spécifiques ;

Quelle est la fonction de la touche Supprimer Quelle est la fonction de la touche Supprimer Dec 31, 2020 pm 04:17 PM

Les fonctions de la touche Supprimer sont : 1. Supprimer le texte ; 2. Supprimer les fichiers ; 3. Supprimer les objets sélectionnés ; La touche Suppr est généralement située dans le coin supérieur droit du clavier. Lorsque nous appuyons sur la touche Suppr, nous pouvons supprimer un caractère à droite du curseur.

See all articles