delete fonctionnant en local mais pas sur site distant
Bonjour,
je me heurte à un petit problème avec l'ordre delete
J'ai une table tb_hotel dans ma base de données
Je fais un delete d'un enregistrement de cette table, enregistrement identifié par sa clé $cleHot = 20;
En local l'enregistrement dont la clé = 20 est bien supprimé;
Par contre sur le site distant d'un hébergeur, cet enregistrement n'est pas supprimé et aucun message n'est signalé;
voici le script que j'ai volontairement réduit à sa plus simple expression pour mieux cerner le problème:
Code:
1 2 3 4
| mysql_select_db($database_connectYieldProduc, $connectYieldProduc);
$cleHot=20;
$query_SupHot = "DELETE FROM bd_yieldproduc.tb_hotel WHERE tb_hotel.cleHotel = '$cleHot' ";
$supprim = mysql_query($query_SupHot, $connectYieldProduc); |
Je ne vois pas pourquoi sur le site de l'hébergeur ce script ne supprime rien
alors que j'ai vérifié avec PHPADMIN que dans ma base installée sur le site distant de l'hébergeur, cet enregistrement existe dans la table tb_hotel.
Merci à l'avance de bien vouloir examiner mon problème.
delete fonctionnant en local mais pas sur site distant Répondre à la discussion
j'ai oublié de spécifier que ma base de données est en MyIsam
Pour le MyIsam l'ordre commit est-il utilisable car je ne suis pas en mode transactionnel.
Par ailleurs je dois préciser à supposer que la mise à jour ce soit effectuée en différé, 24h après l'intruction delete, l'enregistrement devrait être supprimé alors que ce n'est pas le cas.
A l'attention de CinePhil:
merci pour tes conseils, j'en prends acte.
Merci à tous de vous occuper de mon problème
delete fonctionnant en local mais pas sur site distant
Bonjour,
j'ai suivi vos conseils et rajouté la fonction "or die mysql_error" et dans ce cas est apparu le message erreur "delete: command denied to user
'dbo344884133' ".
Pensant à un problème de privilège j'ai alors rajouté l'instruction SQL "Grant SELECT, INSERT, UPDATE, DELETE ON TABLE tb_hotel TO dbo344884133 ";
Après soumission de cette page corrigée le message suivant apparait:
Grant command denied to user 'dbo344884133' ".
Je ne comprends pas car la création d'enregistrement dans la même table (par l'instruction insert) fonctionne dans la base sur le site distant.
Rappel du code soumis provoquant le message erreur:
mysql_select_db($database_connectYieldProduc, $connectYieldProduc);
//
$cleHot=19;
$query_Autoris = "
GRANT SELECT, INSERT, UPDATE, DELETE
ON TABLE tb_hotel
TO dbo344884133
";
mysql_query($query_Autoris, $connectYieldProduc) or die("erreur lors de l'autorisation : " . mysql_error()) ;
$query_SupHot = "
DELETE FROM bd_yieldproduc.tb_hotel WHERE cleHotel = $cleHot
";
$supprim = mysql_query($query_SupHot, $connectYieldProduc) or die("erreur lors du delete : " . mysql_error()) ;
//
Si vous avez une idée je suis preneur;
Merci d'avance
delete fonctionnant en local mais pas sur site distant
merci pour toutes ces infos qui vont me servir ultérieurement.
mais en fait je suis navré et je viens de m'apercevoir de mon erreur: c'est vraiment trop bête de vous avoir fait tant cogiter.
en fait pour les ordres select et insert que j'utilise dans mes pages php, je ne nomme jamais le nom de ma base; la connection est faite en début de page par un script connection;
par contre dans le delete j'ai la table tb_hotel dans laquelle je supprime des enregistrements est nommée en la faisant précéder du nom de la base; et c'est ce nom de base qui est faux dans le site distant;
j'ai donc juste nommé le nom de ma table en étant préalablement connecté sur la bonne base et le delete a fonctionné.
je suis confus de vous avoir dérangé pour une erreur aussi stupide et vous remercie encore du temps que vous m'avez consacré.