SQLSTATE[HY000] : Erreur générale : 1366 Valeur entière incorrecte : '' pour la colonne 'cust_b_country'

Petit nouveau ! | 2 Messages

01 déc. 2022, 16:34

Bonjour je suis entrain d'apprendre à faire un site en php, mais je reçois deux erreurs plutôt embarrassante car je n'arrive pas à les résoudre :
fatale : PDOException non capturée : SQLSTATE[HY000] : Erreur générale : 1366 Valeur entière incorrecte : '' pour la colonne 'cust_b_country' à la ligne 151 dans C:\Users\hp\Desktop\Nouveau dossier (2)\projet site \eCommerceSite-PHP\registration.php à la ligne
( ! ) PDOException : SQLSTATE[HY000] : Erreur générale : 1366 Valeur entière incorrecte : '' pour la colonne 'cust_b_country' à la ligne 1 dans C:\Users\hp\Desktop\Nouveau dossier (2)\projet site\eCommerceSite-PHP \registration.php à la ligne 151
J'ai fais des recherches mais impossible de trouver une solution qui convenait à mon problème, merci d'avance pour votre aide et voici mon code et ma table :
voici mon code
]<?php
$statement = $pdo->prepare("SELECT * FROM tbl_settings WHERE id=1");
$statement->execute();
$result = $statement->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $row) {
$banner_registration = $row['banner_registration'];
}
?>

<?php
if (isset($_POST['form1'])) {

$valid = 1;

if(empty($_POST['cust_name'])) {
$valid = 0;
$error_message .= LANG_VALUE_123."<br>";
}

if(empty($_POST['cust_email'])) {
$valid = 0;
$error_message .= LANG_VALUE_131."<br>";
} else {
if (filter_var($_POST['cust_email'], FILTER_VALIDATE_EMAIL) === false) {
$valid = 0;
$error_message .= LANG_VALUE_134."<br>";
} else {
$statement = $pdo->prepare("SELECT * FROM tbl_customer WHERE cust_email=?");
$statement->execute(array($_POST['cust_email']));
$total = $statement->rowCount();
if($total) {
$valid = 0;
$error_message .= LANG_VALUE_147."<br>";
}
}
}

if(empty($_POST['cust_phone'])) {
$valid = 0;
$error_message .= LANG_VALUE_124."<br>";
}

if(empty($_POST['cust_address'])) {
$valid = 0;
$error_message .= LANG_VALUE_125."<br>";
}

if(empty($_POST['cust_country'])) {
$valid = 0;
$error_message .= LANG_VALUE_126."<br>";
}

if(empty($_POST['cust_city'])) {
$valid = 0;
$error_message .= LANG_VALUE_127."<br>";
}

if(empty($_POST['cust_state'])) {
$valid = 0;
$error_message .= LANG_VALUE_128."<br>";
}

if(empty($_POST['cust_zip'])) {
$valid = 0;
$error_message .= LANG_VALUE_129."<br>";
}

if( empty($_POST['cust_password']) || empty($_POST['cust_re_password']) ) {
$valid = 0;
$error_message .= LANG_VALUE_138."<br>";
}

if( !empty($_POST['cust_password']) && !empty($_POST['cust_re_password']) ) {
if($_POST['cust_password'] != $_POST['cust_re_password']) {
$valid = 0;
$error_message .= LANG_VALUE_139."<br>";
}
}

if($valid == 1) {

$token = md5(time());
$cust_datetime = date('Y-m-d h:i:s');
$cust_timestamp = time();

// saving into the database
$statement = $pdo->prepare("INSERT INTO tbl_customer (
cust_name,
cust_cname,
cust_email,
cust_phone,
cust_country,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_b_name,
cust_b_cname,
cust_b_phone,
cust_b_country,
cust_b_address,
cust_b_city,
cust_b_state,
cust_b_zip,
cust_s_name,
cust_s_cname,
cust_s_phone,
cust_s_country,
cust_s_address,
cust_s_city,
cust_s_state,
cust_s_zip,
cust_password,
cust_token,
cust_datetime,
cust_timestamp,
cust_status
) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
$statement->execute(array(
strip_tags($_POST['cust_name']),
strip_tags($_POST['cust_cname']),
strip_tags($_POST['cust_email']),
strip_tags($_POST['cust_phone']),
strip_tags($_POST['cust_country']),
strip_tags($_POST['cust_address']),
strip_tags($_POST['cust_city']),
strip_tags($_POST['cust_state']),
strip_tags($_POST['cust_zip']),
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
md5($_POST['cust_password']),
$token,
$cust_datetime,
$cust_timestamp,
0
));

Mammouth du PHP | 2703 Messages

01 déc. 2022, 18:32

"Valeur entière incorrecte"
le champ est de type entier, la valeur passée n'est pas un entier d'où le problème. il faut donc mettre une autre valeur par défaut, ou ne pas mettre ce champ dans la requête.

Petit nouveau ! | 2 Messages

01 déc. 2022, 22:38

a quel niveau du script je peut modifier

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

03 déc. 2022, 13:31

Quelle valeur essayes-tu d'enregistrer dans cust_b_country ?
Fais un var_dump() ce la variable que tu as utilisé.
Quand tout le reste a échoué, lisez le mode d'emploi...