mysql_query mise à jour
J'ai un script qui s'exécute lorsqu'un utilisateur appuie sur le "refuser" bouton sur certains termes.
Lorsqu'il s'exécute, il doit révoquer les droits d'accès à la zone en particulier, pour une raison quelconque, le script ne fonctionne pas - comme s'il ne met pas à jour les bases de données MYSQL, ni puis-je obtenir mourir d'erreur.
$username = $_SESSION["USER"]["Username"];
mysql_connect("x", "y", "z") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());
mysql_query("UPDATE `users` SET `SeceretArea`='Unauth' WHERE `Username`='$username'") or die(mysql_error());
Comme indiqué dans le manuel PHP pour la
C'est pour un petit projet et non pas sur une grande échelle, un site web
si vous exécutez la mise à jour de l'utilisation de mySQL en ligne de commande ou de l'établi, est-il exécuter correctement?
essayez
avez-vous appeler
mysql_*
fonctions: l'Utilisation de cette extension est découragé. Au lieu de cela, le MySQLi ou PDO_MySQL l'extension doit être utilisée. Voir aussi MySQL: le choix d'une API guide et FAQ pour plus d'informations.C'est pour un petit projet et non pas sur une grande échelle, un site web
si vous exécutez la mise à jour de l'utilisation de mySQL en ligne de commande ou de l'établi, est-il exécuter correctement?
essayez
echo $username . '!';
avez-vous appeler
session_start()
pour initialiser la session sur ce script?
OriginalL'auteur Rsmithy | 2012-07-23
Vous devez vous connecter pour publier un commentaire.
RÉPONSE MIS À JOUR À LA SOMME DES PROCESSUS DE DÉBOGAGE.
Si il n'y a pas d'erreur, puis il y a trois possibilités quant à pourquoi l'entrée de base de données n'est pas le cas:
USERNAME
colonne est égale à$database
.$database
.$database
, mais cette valeur n'est pas remplacé dans la requête.À partir de mon expérience personnelle,
mysql_query()
n'est pas nécessairement remplacer les valeurs de la variable avant l'exécution de la requête. Créer la première chaîne de requête dans une variable, puis la passer àmysql_query()
. Votre configuration actuelle ne remplace pas$username
avec sa valeur. Ce que vous pouvez faire est ceci:En dehors de cela, vérifiez votre table pour s'assurer qu'il y a une ligne avec la valeur que vous voulez dans
USERNAME
.var_dump()
votre$username
pour voir si c'est la valeur que vous avez prévu.Aussi, vous devriez vraiment envisager de passer à soit
mysqli
ouPDO
. Si vous ne souhaitez pas migrer vers un module d'objet, vous pouvez utilisermysqli
's fonctions de procédure.$username
avec sa valeur.il n'a pas fonctionné :/
N'est ce pas? Je l'ai vu remplace pas avant. @Rsmithy Alors la prochaine étape est de se demander: la valeur de
$username
existe pas dans la base de données?Je veux dire, j'ai connu des situations où de faire quelque chose comme
mysql_query("SELECT * FROM $table")
va interroger pour l'instruction "SELECT * from $table" au lieu de remplacer le nom de la table. Mon fix? Mettre la requête dans une variable et le passage de la variable elle-même àmysql_query()
, comme indiqué dans ma réponse. Il a travaillé pour moi, j'ai pensé qu'il pourrait fonctionner pour les autres.Je sais ce que c' doit de le faire, je suis en train de dire que j'ai eu des situations où il ne pas le faire, et mon correctif a été littéralement juste le déplacement de la déclaration de l'extérieur
mysql_query()
. Ou allez-vous me dire que je suis en train de faire des histoires pour l'attention? Parce que c'est essentiellement de l'endroit où vous allez avec ce à ce taux.OriginalL'auteur Palladium
Vous voulez vous assurer que vous appelez
session_start();
en haut de votre script. Sans elle, votre$username
variable ne sera jamais réglé.session_start();
est appelé au débutOriginalL'auteur Mike Mackintosh
Assurez-vous que le $username porte la valeur de session que vous avez passé.
Procéder à la requête que lorsque vous l'obtenez, correcte.
Et aussi, assurez-vous que le champ nom de la table est correcte. J'ai remarqué SeceretArea qui est peut-être SecretArea dans votre table.
Et ce n'
echo $_SESSION["USER"]["Username"];
imprimer?J'ai essayé et il imprime rien :/
Cela signifie, que vous êtes de ne pas obtenir n'importe quelle valeur dans
$_SESSION["USER"]["Username"]
. Vous avez probablement un problème en passant de la session nom d'utilisateur.Alors vous avez un problème avec votre session. Ce n'est pas une base de données de problèmes. Je suppose que référencé dans la session n'a pas cette information. Pouvez-vous vérifier?
OriginalL'auteur Aryan G
Juste quelques pensées:
UserName
vous WHEREing?OriginalL'auteur Dio F