Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQLSTATE[42000]:语法错误或访问冲突:1064-专门指单词“quot;麦克马斯特“;_Php_Mysql_Pdo - Fatal编程技术网

Php SQLSTATE[42000]:语法错误或访问冲突:1064-专门指单词“quot;麦克马斯特“;

Php SQLSTATE[42000]:语法错误或访问冲突:1064-专门指单词“quot;麦克马斯特“;,php,mysql,pdo,Php,Mysql,Pdo,我正在尝试从我用PHP/HTML创建的注册页面输入信息。页面上的相关PDO代码为: $pdo = new PDO('mysql:host=localhost;dbname=assignment','admin', 'puppies'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); try { $stmt = $pdo->prepare("INSERT INTO `testusers`

我正在尝试从我用PHP/HTML创建的注册页面输入信息。页面上的相关PDO代码为:

$pdo = new PDO('mysql:host=localhost;dbname=assignment','admin', 'puppies');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
    $stmt = $pdo->prepare("INSERT INTO 
    `testusers` (`id`, `username`, `salt`, `passhash`, `firstname`, `lastname`, `gender`, `dob`, `email`, `phone`, `school`) 
    VALUES (NULL, :username, :salt, :passhash, :firstname, :lastname, :gender, :dob, :email, :phone, :school')");
        $stmt->bindValue(':username', $_POST['username']);
        $stmt->bindValue(':salt', uniqid(mt_rand(), true));
        $stmt->bindValue(':passhash', $_POST['password']);
        $stmt->bindValue(':firstname', $_POST['firstname']);
        $stmt->bindValue(':lastname', $_POST['lastname']);
        $stmt->bindValue(':gender', $_POST['gender']);
        $dob = (string) $_POST['birthyear'] . (string) $_POST['birthmonth'] . (string) $_POST['birthday'];
        $stmt->bindValue(':dob', $dob);
        $stmt->bindValue(':email', $_POST['email']);
        $stmt->bindValue(':phone', $_POST['phone']);
        $stmt->bindValue(':school', $_POST['university']);
        $stmt->execute();
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
我收到的全部错误是:

SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解第2行“mcmaster”)附近使用的正确语法

对于上下文,我有一个下拉菜单,用户可以在其中选择他们去的学校。其中一个值是“mcmaster”。如果我切换到下拉列表中的其他值,错误将更改为与该值匹配(queen's、ryerson等)。在我的数据库中,“school”列被编码为64个字符的VARCHAR

<p>What university are you currently attending?</p>
<select name="university" name="university">
    <option value="mcmaster">McMaster University</option>
    <option value="queen's">Queen's University</option>
    <option value="ryerson">Ryerson University</option>
    <option value="uoft">University of Toronto</option>
    <option value="waterloo">University of Waterloo</option>
    <option value="western">Western University</option>
    <option value="york">York University</option>
</select>
您目前就读于哪所大学

麦克马斯特大学 皇后大学 加拿大瑞尔森大学 多伦多大学 滑铁卢大学 西部大学 约克大学
:school'
值列表中的
:school
后面有一个错误的额外单引号,请删除该引号,情况应该会有所改善。在
:school'
值列表中的
:school
后面有一个错误的额外单引号,请删除该引号,情况应该会有所改善。