Problème fonction execute

Par Azalpher, il y a 11 ans


Bonjour,
J'essaye d'enregistrer une ip dans ma BDD lorsqu'un utilisateur se connecte, mais j'ai un problème avec la fonction execute()
Voici le code !
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$db = mysqli_connect('localhost', 'root', 'Administrateur29', 'test');
$req = "UPDATE users SET ip=$ip WHERE id=$username";
$update = $db->prepare($requete);
$result = $update->execute();

$stmt = $db->prepare($requete);
$stmt->bindValue('$username');
$result = $stmt->execute();
$data = $stmt->fetch();
?>
En vous remerciant d'avance.

13 réponses

Grafikart, il y a 11 ans

"ai un problème avec la fonction execute()"

Oui et quel est le problème ? XD

Hannibal, il y a 11 ans

Ton code est très bizarre...
Dans tous les cas cela ne peux pas fonctionner:

$req = "UPDATE users SET ip=$ip WHERE id=$username"; $update = $db->prepare($requete); // il vient d'ou le $requete ?

De plus tu utilise des prepared query sans aucun bind. Cela ne sert a rien.
Donc je pense que tu devrai revoir un petit tuto: http://openclassrooms.com/courses/maitrisez-mysqli-sans-poo

Voila voila ;)

mxmaxime, il y a 11 ans

Comme l'a dit Hannibal, d'où provient ta variable? Tu nous a mis qu'un fragement de code? :/

Alexandre #lbac, il y a 11 ans

L'erreur retournée serait pas mal pour commencer ;)

Azalpher, il y a 11 ans

L'erreur est "Fatal error: call function execute() on a non-object" :/

Carouge10, il y a 11 ans

Bonjour,

Comme dit précédemment, $requete est une variable inconnu.
En corrigeant $req par $requete, cela devrait corriger votre problème.

mxmaxime, il y a 11 ans

ta variable que t'essaies d'envoyer n'existe pas. Lis les erreurs avant de venir sur un forum. a+

Bousty, il y a 11 ans

On dirait des bouts de codes glanné ici et là ...

Hannibal, il y a 11 ans

Et alors ! On a tous débuter un jour. Pas la peine de le prendre pour un c##....
Vu vos critiques, je ne m'étonnerai pas qu'il ne revienne jamais sur le forum.

Cool les mecs

Vallyan, il y a 11 ans

On se calme peut-etre un peu, les integristes du PHP, avant de fondre sur le malheureux développeur amateur comme une tribue de morpions sur un puceau dans une maison close

@François Cammas:

  • Tu utilise une connexion mysqli avec un traitement de la requête en objet . ça peut pas marcher !
  • Soit Tu utilises la PDO tout le temps soit jamais
  • Ou tiens je vais tenter la PDO Ca a l'air bien ?

Selon la doc :
mysqli_connect
(PHP 5)
mysqli_connect — Alias de mysqli::__construct()

... Je me plante probablement, mais ca ressemble furieusement a de l'orienté objet, cette classe mysqli ... non ?

@Azalpher: Essaye un truc du genre de ceci. A débugger éventuellement, je le fais de tête.

<?php $db = mysqli_connect('localhost', 'root', 'Administrateur29', 'test'); // Username à instancier $stmt = $db->prepare("UPDATE users SET ip=? WHERE id=?"); $stmt->bind_param( $_SERVER['REMOTE_ADDR'], $username ); $stmt->execute(); $stmt->close(); // Il n'y a rien à "fetch" puisque tu fais un UPDATE et non un SELECT ?>
Couss, il y a 11 ans

@Vallyan tant qu'à faire bind aussi username on ne sais pas comment il est récup donc autant le protéger aussi

Vallyan, il y a 11 ans

'ffectivement, j'ai édité le post précédent ...

François Cammas, il y a 11 ans

J'ai retiré mes posts. Je sais c'est pas bien ce que j'ai fait. Surtout quand j'ai tort !!!