我是PDO的新手,我正在开发一个小型电子商务网站。我想用tis代码做的是更新用户信息。我有一个login.php页面,我从中传递用户的id来更新,我用$ _GET ['id]检索该变量。但是,如果我在if循环之外检查提交的信息变量是可见的,否则没有..请问你能告诉我我的代码在哪里错了吗?查询已执行,因为我被重定向到“aggiorna.php?aggiorna = ok”但数据库未更新。
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
//inserisci dati in tabella utenti
if(isset($_GET['id']))
$id = intval($_GET['id']);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if(isset($_POST['nome'])) {
$nome = test_input($_POST['nome']);
} else {
$error_nome = "Devi inserire il nome";
}
if(isset($_POST['cognome'])) {
$cognome = test_input($_POST['cognome']);
} else {
$error_cognome = "Devi inserire il cognome";
}
if(isset($_POST['cf'])) {
$cf = test_input($_POST['cf']);
} else {
$error_cf = "Devi inserire il codice fiscale";
}
if(isset($_POST['paese'])) {
$paese = test_input($_POST['paese']);
} else {
$error_paese = "Devi inserire il paese";
}
if(isset($_POST['telefono'])) {
$telefono = test_input($_POST['telefono']);
} else {
$error_telefono = "Devi inserire il telefono";
}
if(isset($_POST['indirizzo'])) {
$indirizzo = test_input($_POST['indirizzo']);
} else {
$error_indirizzo = "Devi inserire l'indirizzo";
}
if(isset($_POST['cap'])) {
$cap = test_input($_POST['cap']);
} else {
$error_cap = "Devi inserire il cap";
}
if(isset($_POST['citta'])) {
$citta = test_input($_POST['citta']);
} else {
$error_citta = "Devi inserire il citta";
}
if(isset($_POST['provincia'])) {
$provincia = test_input($_POST['provincia']);
} else {
$error_provincia = "Devi inserire la provincia";
}
$aggiorno = $db->prepare("UPDATE utenti SET
nome = :nome,
cognome = :cognome,
cf = :cf,
paese = :paese,
telefono = :telefono,
indirizzo = :indirizzo,
cap = :cap,
citta = :citta,
provincia = :provincia
WHERE id = :id");
$aggiorno->bindParam(':nome',$nome);
$aggiorno->bindParam(':cognome',$cognome);
$aggiorno->bindParam(':cf',$cf);
$aggiorno->bindParam(':paese',$paese);
$aggiorno->bindParam(':telefono',$telefono);
$aggiorno->bindParam(':indirizzo',$indirizzo);
$aggiorno->bindParam(':cap',$cap);
$aggiorno->bindParam(':citta',$citta);
$aggiorno->bindParam(':provincia',$provincia);
$aggiorno->bindParam(':id',$id);
$results = $aggiorno->execute();
if($results)
header("Location:aggiorna.php?aggiorna=ok");
else echo "Aggiornamento non eseguito";
}
配置文件
require_once("config.php");
try {
$db = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME .";port=" . DB_PORT,DB_USER,DB_PASS);
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$db->exec("SET NAMES 'utf8'");
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch (Exception $e) {
echo "Could not connect to the database.";
echo $e->getMessage();
exit;
}