我找到了很多有关如何使用PDO将表单数据插入mysql的答案,也找到了一些与从this one这样的数组中插入数据有关的答案,但实际上我的问题与我不确定的表单中的第三个问题有关如果我以正确的方式编写查询
这是我的代码,但它给了我这个错误:
PHP解析错误:语法错误,意外的';' in ...(与insert语句相关的行)
<?php
session_start();
if(isset($_POST['submit']))
{
$_SESSION['q1'] = $_POST['q1'];
$_SESSION['q2'] = $_POST['q2'];
$_SESSION['q3'] = implode(',', $_POST['genre']);
$q1 = mysql_real_escape_string($_SESSION['q1']);
$q2 = mysql_real_escape_string($_SESSION['q2']);
$q3 = mysql_real_escape_string($_SESSION['q3']);
$conn = new PDO('mysql:dbname=Application;host=localhost;charset=utf8', 'user', 'xxxx');
$conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('INSERT INTO test (q1, q2, q3) VALUES (:q1, :q2, :q3)');
$stmt->execute(array(':q1' => $q1,':q2' => $q2,':q3' => ".$q3."));
}
catch(Exception $e) {
echo 'Exception -> ';
var_dump($e->getMessage());
}
header('Location: Thankyou.php');
exit;
}
?>
最佳答案
首先,请勿将mysql与PDO混合使用,还应将try与catch异常和
更改
$stmt->execute(array(':q1' => $q1,':q2' => $q2,':q3' => ".$q3."));
至
$stmt->execute(array(':q1' => $q1,':q2' => $q2,':q3' => $q3));