PDO::errorInfo(): Array ( [0] => 00000 [1] => [2] => )

Fermé
danipro2110 Messages postés 1 Date d'inscription mardi 1 juin 2021 Statut Membre Dernière intervention 1 juin 2021 - 1 juin 2021 à 04:16
jordane45 Messages postés 38173 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 mai 2024 - 1 juin 2021 à 09:26
Bonjour,

j'ai ce code pour l'insertion des données d'un formulaire d'inscription, je ne sais pas d'ou provient l'erreur,
voila mon code :

<?php

function create_sellerid(){
$length = rand(4,14);
$number = "";
for ($i=0; $i < $length; $i++){
$new_rand = rand(0,9);
$number = $number . $new_rand;
}
return $number;
}

if ($_SERVER['REQUEST_METHOD'] == "POST" )
{
if (!$db = new PDO("mysql:host=localhost;dbname=shopdb","root","dani"))
{
die("cannot connect to database");
}


echo "<pre>";
print_r($_POST);
echo "</pre>";





$arr['seller_id']= create_sellerid();
$arr['compname'] = $_POST['compname'];
$arr['usrname'] = $_POST['usrname'];
$arr['email'] = $_POST['email'];
$arr['birth'] = $_POST['birth'];
$arr['phone'] = $_POST['phone'];
$arr['pswrd'] = hash('sha1' , $_POST['pswrd']);


$query = "insert into sellers (seller_id,compname,usrname,email,birth,phone,pswrd) values (:seller_id,:compname,:usrname,:email,:birth,:phone,:pswrd)";

$stm = $db->prepare($query);
if ($stm)
{
$check = $stm->execute($arr);
if (!$check)
{
echo "\nPDO::errorInfo():\n";
print_r($db->errorInfo());
//echo "error";

}
else
{

header("location : index.php");
}
}
}


?>

1 réponse

jordane45 Messages postés 38173 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 mai 2024 4 665
1 juin 2021 à 08:02
0
jordane45 Messages postés 38173 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 10 mai 2024 4 665
1 juin 2021 à 09:26
Au passage.. ta colonne seller_id est de type auto-increment ?
Si oui.. pas besoin de générer un ID .. ça se fera tout seul.
Et dans ce cas, il ne faut pas spécifier la colonne dans ta requête SQL.

Je précise également que pour sécuriser les mots de passe, on n'utilise plus le sha1 ...
A la place, tourne toi vers la fonction php : password_hash


PS: A l'avenir, pour poster du code sur le forum, merci d'utiliser les balises de code
Explications ( à lire ENTIEREMENT !! ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0