php - validation and data add to a db table -
the questions have asked earlier pdo retrieve data , populate record input mask need validate user input , add has been entered db table , last step.
my mistake can see in below code misinterpret insert into , update set using pdo.
furthermore far concerned insert into
use bindparam
in order attempt data entry, while update set
use execute(array)
. matter of fact code validates user data input , whether input correct php attempts connect db , should insert or update table. strange part no error returned , no data added
<?php error_reporting(-1); ini_set('display_errors', 'on'); ?> <?php $servername = "xxx"; $username = "xx"; $password = "xxx"; $dbname = "xxxx"; try { $dbh = new pdo("mysql:host=$servername;dbname=$dbname", $username, $password); // set pdo error mode exception $dbh->setattribute(pdo::attr_errmode, pdo::errmode_exception); echo 'connected database<br />'; } catch(pdoexception $e) { echo "connection failed: " . $e->getmessage(); } $sth = $dbh->prepare("use accessibilita"); ?> <?php switch ($_get['action']) { case 'add': switch ($_get['type']) { case 'tages': $error = array(); $nome = isset($_post['nome']) ? trim($_post['nome']) : ''; if (empty($nome)) { $error[] = urlencode('si prega di inserire un nome.'); } $cognome = isset($_post['cognome']) ? trim($_post['cognome']) : ''; if (empty($cognome)) { $error[] = urlencode('si prega di inserire un cognome.'); } $indirizzo = isset($_post['indirizzo']) ? trim($_post['indirizzo']) : ''; if (empty($indirizzo)) { $error[] = urlencode('si prega di inserire un indirizzo.'); } $civico = isset($_post['civico']) ? trim($_post['civico']) : ''; if (empty($civico)) { $error[] = urlencode('si prega di inserire un numero civico.'); } $citta = isset($_post['citta']) ? trim($_post['citta']) : ''; if (empty($citta)) { $error[] = urlencode('si prega di inserire una citta valida.'); } $prov = isset($_post['prov']) ? trim($_post['prov']) : ''; if (empty($prov)) { $error[] = urlencode('si prega di inserire una provincia.'); } if (empty($error)) { $stmt = $dbh->prepare("insert tagesroma(nome, cognome, indirizzo, civico, citta, prov) values (:nome, :cognome, :indirizzo, :civico, :citta, :prov)"); $stmt->bindparam(':nome', $nome); $stmt->bindparam(':cognome', $cognome); $stmt->bindparam(':indirizzo', $indirizzo); $stmt->bindparam(':civico', $civico); $stmt->bindparam(':citta', $citta); $stmt->bindparam(':prov', $prov); } else { header('location:tages.php?action=add' . '&error=' . join($error, urlencode('<br/>'))); } break; } break; case 'edit': switch ($_get['type']) { case 'tages': $error = array(); $nome = isset($_post['nome']) ? trim($_post['nome']) : ''; if (empty($nome)) { $error[] = urlencode('si prega di inserire un nome.'); } $cognome = isset($_post['cognome']) ? trim($_post['cognome']) : ''; if (empty($cognome)) { $error[] = urlencode('si prega di inserire un cognome.'); } $indirizzo = isset($_post['indirizzo']) ? trim($_post['indirizzo']) : ''; if (empty($indirizzo)) { $error[] = urlencode('si prega di inserire un indirizzo.'); } $civico = isset($_post['civico']) ? trim($_post['civico']) : ''; if (empty($civico)) { $error[] = urlencode('si prega di inserire un numero civico.'); } $citta = isset($_post['citta']) ? trim($_post['citta']) : ''; if (empty($citta)) { $error[] = urlencode('si prega di inserire una citta valida.'); } $prov = isset($_post['prov']) ? trim($_post['prov']) : ''; if (empty($prov)) { $error[] = urlencode('si prega di inserire una provincia.'); } if (empty($error)) { //syntax error correction $stmt = $dbh->prepare("update tagesroma set nome=?, cognome=?, indirizzo=?, civico=?, citta=?, prov=?)"); $stmt->execute(array($nome, $cognome, $indirizzo, $civico, $citta, $prov)); } else { header('location:tages.php?action=edit&id=' . $_post['id'] . '&error=' . join($error, urlencode('<br/>'))); } break; } break; } ?> <html> <head> <title>commit</title> <meta charset="utf-8"> </head> <body> <p>done!</p> </body> </html>
update/edit:
i did correct update set
part still no data added
the problem here never executed insert
add it:
$stmt -> execute();
which why no errors return, because there none; "missing" ;-)
reference:
Comments
Post a Comment