我找到了许多关于如何使用PDO将表单数据插入到mysql中的答案,我也发现了一些与插入来自this one数组的数据相关的答案,但实际上我的问题与我表单中的第三个问题有关。我不确定我是否以正确的方式编写了查询
这是我的代码,但它给了我这个错误:
PHP Parse错误:语法错误,意外&#39 ;;' in ...行(与插入语句相关的行)
<?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;
}
?>
答案 0 :(得分:1)
首先不要将mysql与PDO混合使用,也可以使用try with catch exception和
更改
$stmt->execute(array(':q1' => $q1,':q2' => $q2,':q3' => ".$q3."));
到
$stmt->execute(array(':q1' => $q1,':q2' => $q2,':q3' => $q3));