Inserimento query Errore 1366

Kiko74b

Nuovo Utente
26 Giu 2022
19
2
3
Salve eccomi nuovamente a rompere con le mie banalissime domande
ho questa query :
PHP:
if(isset($_POST['add']))
{
$diabeticoid=$_POST['iddiabetico'];
$strisce=$_POST['strisce'];
$lancette=$_POST['lancette'];
$aghi=$_POST['aghi'];
$statoerogazione=1;
$sql="INSERT INTO tblerogazioni(Iddiabetico,ProductId1,ProductId2,ProductId3) 
      VALUES(:iddiabetico,:strisce,:lancette,:aghi);
      UPDATE tbldiabetici set StatoErogazione=:statoerogazione where id=:iddiabetico;";
$query = $dbh->prepare($sql);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$query->bindParam(':iddiabetico',$diabeticoid,PDO::PARAM_STR);
$query->bindParam(':strisce',$strisce,PDO::PARAM_STR);
$query->bindParam(':lancette',$lancette,PDO::PARAM_STR);
$query->bindParam(':aghi',$aghi,PDO::PARAM_STR);
$query->bindParam(':statoerogazione',$statoerogazione,PDO::PARAM_STR);
$query->execute();

E questo form di inserimento:
PHP:
<form role="form" method="post">

<div class="col-md-6">  
<div class="form-group">
    
<label> Seleziona Diabetico<span style="color:red;">*</span></label>
<select class="form-control" name="iddiabetico" required="required">
<option value=""> Seleziona Diabetico</option>
<?php
$sql = "SELECT * from  tbldiabetici where statoerogazione!=1 AND PianoTerapeutico > NOW() ORDER BY CognomeNome ASC";
$query = $dbh -> prepare($sql);
$query -> bindParam(':status',$status, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{               ?>  
<option value="<?php echo htmlentities($result->id);?>"><?php echo htmlentities($result->CognomeNome);?></option>
 <?php }} ?> 
</select>
</div></div>

<div class="col-md-6">  
<div class="form-group">
<label> Seleziona Strisce<span style="color:red;">*</span></label>
<select class="form-control" name="strisce">
<option value=""> Seleziona Striscia</option>
<?php
$sql = "SELECT * from  tblbooks where CatId='7'";
$query = $dbh -> prepare($sql);
$query -> bindParam(':status',$status, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{               ?>  
<option value="<?php echo htmlentities($result->id);?>"><?php echo htmlentities($result->BookName);?></option>
 <?php }} ?> 
</select>
</div></div>

<div class="form-group">
<span id="get_student_name" style="font-size:16px;"></span> 
</div>

<div class="col-md-6">  
<div class="form-group">
    
<label> Seleziona Lancette<span style="color:red;">*</span></label>
<select class="form-control" name="lancette">
<option value=""> Seleziona Lancette</option>
<?php
$sql = "SELECT * from  tblbooks where CatId='8'";
$query = $dbh -> prepare($sql);
$query -> bindParam(':status',$status, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{               ?>  
<option value="<?php  echo htmlentities($result->id);?>"><?php echo htmlentities($result->BookName);?></option>
 <?php }} ?> 
</select>
</div></div>

<div class="col-md-6">  
<div class="form-group">
<label> Seleziona Aghi<span style="color:red;">*</span></label>
<select class="form-control" name="aghi">
<option value=""> Seleziona Aghi</option>
<?php 
$sql = "SELECT * from  tblbooks where CatId='9'";
$query = $dbh -> prepare($sql);
$query -> bindParam(':status',$status, PDO::PARAM_STR);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query->rowCount() > 0)
{
foreach($results as $result)
{               ?>  
<option value="<?php echo htmlentities($result->id);?>"><?php echo htmlentities($result->BookName);?></option>
 <?php  }} ?> 
</select>
</div></div>
<button type="submit" name="add" id="submit" class="btn btn-info">
Inserisci Erogazione </button>

                                    </form>
Se il form viene popolato completamente tutto funziona se invece ometto di inserire gli aghi mi da questo errore indicando che sto cercando di inserire una stringa in un campo integer. Quello che ho trovato è questo codice
PHP:
if ($_POST['value'] === '') {
    $_POST['value'] = null; // or 'NULL' for SQL
}
attraverso il quale dovrei risolvere il problema nel senso che se il valore passato è esattamente vuoto deve convertirlo in null.
Secondo voi è la strada giusta oppure dovrei modificare la mia query? premetto che la tblerogazioni ha un solo valore autoincrement che è stato giustamente omesso dalla query.
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
io preferisco avere numeri nei campi numerici non il valore null
suggerisco

PHP:
$strisce  = !empty($_POST['strisce'])  ? $_POST['strisce']  : 0;
$lancette = !empty($_POST['lancette']) ? $_POST['lancette'] : 0;
$aghi     = !empty($_POST['aghi'])     ? $_POST['aghi']     : 0;
 

Kiko74b

Nuovo Utente
26 Giu 2022
19
2
3
da qui nn posso testare domani proverò il tuo suggerimento. da quanto ho capito e perdona la banalità, le tre variabili in questo modo se sono vuote perche dal form non ho selezionato alcun articolo, inseriranno il numero zero, che è diverso da null, nel mysql db questi valori (strisce,lancette e aghi) assumono valore null predefinito. Questo è compatibile con la soluzione che mi suggerisci?
Inoltre nel momento in cui ottengo un valore numerico dovrei sostituire nel binding PDO::pARAM_STR con PDO::pARAM_INT?
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
ho capito che si tratta di campi numerici, il default dovrebbe essere 0 non null,
null potrebbe creare problemi quando si riutilizza il dato memorizzato nel db

di nuovo se i campi sono interi, giusto mettere ": param int"
 
Discussioni simili
Autore Titolo Forum Risposte Data
G Inserimento loop in una INSERT query in PHP e MySQL PHP 2
Emix Problema query inserimento... PHP 6
B [SQLite] Problemi query di inserimento PHP 2
P Query Mysql per inserimento multiplo MySQL 4
A Passaggio di un ID ad una query di inserimento PHP 11
K form Inserimento record mysql PHP 2
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
C inserimento gestionale sotto Word Press WordPress 0
D Inserimento video mp4 HTML e CSS 0
L inserimento form dati multipli ? PHP 0
G Appicazione HTML per inserimento dai in Database Access Microsoft HTML e CSS 0
J Form inserimento dati in database Ajax 1
D modificare questo codice per inserimento in text e non in tabella jQuery 1
R [C#] Automatizzare un inserimento di un Post su un Gruppo Facebook .NET Framework 0
M Aiuto con inserimento immagini WordPress 6
elpirata Impedire inserimento data di oggi e date passate jQuery 39
A Inserimento dati nel database tramite form + altre operazioni PHP 18
W Email conferma inserimento Classic ASP 0
S Inserimento multiplo non richiesto PHP 2
P inserimento icone social tramite html HTML e CSS 1
L form multipla php sql,errore in inserimento MySQL 0
Alex_70 Inserimento dati a cascata PHP 204
T Da xsd a xml ed inserimento dati in excel XML 0
M Problema inserimento parole con apostrofo nel db PHP 5
C [RISOLTO]Inserimento variabile php in input html PHP 20
P Access Inserimento data. MS Access 4
L Inserimento dettagli in una maglia Photoshop 2
S [PHP] email con inserimento dati nel database PHP 23
beatle [Photoshop] problema inserimento immagini Photoshop 1
G [Javascript] Errore inserimento dati Backend Node.js e workbench Javascript 1
B [PHP] Creare PDF dopo inserimento dati form PHP 4
C [PHP] Form con Inserimento dati dalla maschera e un menù a discesa che prende i dati dal db PHP 1
C [PHP] Form inserimento più menù a discesa PHP 9
M [PHP] Problemi su inserimento array nel db PHP 7
gandalf1959 [PHP] Inserimento di più righe non funziona come mi aspetto... PHP 2
E Inserimento dati da PHP in tabella MySQL PHP 5
E Form inserimento dati con JavaScript Javascript 0
D [MS Access] problemi con inserimento campo in una maschera MS Access 6
G inserimento csv in tabella mysql; problema con struttura PHP 11
M [Joomla] Inserimento wow.js in template Joomla 4
K [PHP] Inserimento dati database con postgres PHP 2
K [PHP + MYSQL ] Inserimento dati in database da form dinamico PHP 13
A [PHP] Inserimento url dinamici in pagina html PHP 3
spider81man [PHP] Alert Box per confermare Inserimento o Cancellazione dato. PHP 4
gandalf1959 [MySQL] Inserimento multiplo da form multirighe MySQL 22
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
M Inserimento dati checkbox multipli in db da ajax a php PHP 1
S [PHP] inserimento su DB da tabella PHP 29
P [PHP] Problema inserimento nuove chiavi in array PHP 2
paloppa Inserimento data su database MYSQL PHP 2

Discussioni simili