Notice: Array to string conversion in ...Database.php on line 18
Résolu
JxSDev
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
DevMan -
DevMan -
Salut à tous ^^ , je viens vers vous car je me bloque sur un problème que j'ai du mal à identifier , c'est la première fois que je rencontre ce type d'erreur.
lorsque j'utilise ma requête j'ai bien le bon résultat mais j'ai un retour de notice concernant la conversion de tableau.
Si quelqu'un a une idée afin de régler cela sans cacher l'erreur cela me permettrait d'avancer dans mon travail.
je vous montre le code avec toutes les lignes qui sont apparues dans la notice :
CLASS Database.php qui contient la fonction de ma query :
ma page mailCtrl.php je vous montre juste les lignes qui concernent la requête
ma class Auth.php ou se trouve la function estimate de la requete :
Merci d'avnce pour votre aide, je serai très reconnaissante ^^
lorsque j'utilise ma requête j'ai bien le bon résultat mais j'ai un retour de notice concernant la conversion de tableau.
Si quelqu'un a une idée afin de régler cela sans cacher l'erreur cela me permettrait d'avancer dans mon travail.
je vous montre le code avec toutes les lignes qui sont apparues dans la notice :
CLASS Database.php qui contient la fonction de ma query :
public function query($query, $params = false){ try { if($params){ $req = $this->bdd->prepare($query); $req->execute($params); // c'est la ligne 18 }else{ $req = $this->bdd->query($query); } return $req;} catch(Exception $e) { echo 'Exception -> '; var_dump($e->getMessage()); }
ma page mailCtrl.php je vous montre juste les lignes qui concernent la requête
if($validator->isValid()){ App::getAuth()->estimate($db, $_POST['qtePdt'],$_POST['namePdt'],$_POST['refPdt'], $_POST['suggestedPrice'], $_POST['message'], $_FILES['fileUpload']); Session::getInstance()->setFlash('success', "Votre demande a ete bien envoyée");
ma class Auth.php ou se trouve la function estimate de la requete :
public function estimate($db, $qtePdt, $namePdt, $refPdt, $suggestedPrice, $message, $fileUpload){ $db->query("INSERT INTO estimate SET qtePdt = ?, namePdt = ?, refPdt = ?, suggestedPrice = ?, message = ?, fileUpload = ?",[ $qtePdt, $namePdt, $refPdt, $suggestedPrice, $message, $fileUpload ]); // on m'indique aussi que l'erreur vient de cette ligne }
Merci d'avnce pour votre aide, je serai très reconnaissante ^^
A voir également:
- Notice: array to string conversion i
- Notice gratuite - Guide
- Qwerty to azerty - Guide
- Notice chromecast - Guide
- Notice telecommande universelle grundig - Forum Téléviseurs
- Bouton on off o i - Forum Word
3 réponses
Bonjour,
Sans regarder ton code, cette erreur signifie que tu essaye d'utiliser un tableau dans un objet/fonction qui attends une string, et cette utilisation erronée se trouve à la ligne 18 de ton fichier database.php, et comme tu ne nous fournis pas le code de cette ligne 18 ^^ dur d'en dire plus.
Cdlt.
Sans regarder ton code, cette erreur signifie que tu essaye d'utiliser un tableau dans un objet/fonction qui attends une string, et cette utilisation erronée se trouve à la ligne 18 de ton fichier database.php, et comme tu ne nous fournis pas le code de cette ligne 18 ^^ dur d'en dire plus.
Cdlt.
Il ne faut tout simplement pas faire de "echo" sur un array...
Si tu as un tableau et que tu fais un echo sur celui ci, php ne saura pas quelle case du tableau t'afficher donc voila d'ou viens ton erreur.
Si tu veux afficher quelque chose en particulier tu devrais faire plutôt
du echo $nomDuTableau['case_du_tableau'];
Si tu as un tableau et que tu fais un echo sur celui ci, php ne saura pas quelle case du tableau t'afficher donc voila d'ou viens ton erreur.
Si tu veux afficher quelque chose en particulier tu devrais faire plutôt
du echo $nomDuTableau['case_du_tableau'];
Salut,
L'erreur vient surement de la variable $_FILES['fileUpload'] qui est un tableau, il n'est donc pas possible de l'utiliser directement en tant que paramètre d'une requête préparée.
Bonne journée,
L'erreur vient surement de la variable $_FILES['fileUpload'] qui est un tableau, il n'est donc pas possible de l'utiliser directement en tant que paramètre d'une requête préparée.
Bonne journée,
Tout dépend de l'info que tu veux récupérer :
$_FILES['fileUpload']['name'] pour le nom original du fichier
$_FILES['fileUpload']['tmp_name'] pour le nom temporaire du fichier
$_FILES['fileUpload']['size'] pour la taille du fichier
etc...
L'utilisation de la superglobale $_FILES est expliqué ici : https://www.php.net/manual/fr/features.file-upload.post-method.php
Au passage il faudra également utiliser la fonction move_uploaded_file() pour stocker le fichier uploadé temporaire dans le dossier de ton choix, sinon le fichier uploadé temporaire sera supprimé à la fin de l’exécution de ton script (plus d'info sur le lien de la doc ci-dessus).
$_FILES['fileUpload']['name'] pour le nom original du fichier
$_FILES['fileUpload']['tmp_name'] pour le nom temporaire du fichier
$_FILES['fileUpload']['size'] pour la taille du fichier
etc...
L'utilisation de la superglobale $_FILES est expliqué ici : https://www.php.net/manual/fr/features.file-upload.post-method.php
Au passage il faudra également utiliser la fonction move_uploaded_file() pour stocker le fichier uploadé temporaire dans le dossier de ton choix, sinon le fichier uploadé temporaire sera supprimé à la fin de l’exécution de ton script (plus d'info sur le lien de la doc ci-dessus).
$req->execute($params); // c'est la ligne 18
puis tu édites le fichier debug.txt, si le fichier contient autre chose que array, ça te donnera une grosse information sur le problème.
Cdlt.