Php 插入无效,已准备、绑定和执行,但无效

Php 插入无效,已准备、绑定和执行,但无效,php,mysql,sql,prepared-statement,execute,Php,Mysql,Sql,Prepared Statement,Execute,嘿,伙计们,我在pp.php文件中有这个代码 <?php class system{ public function register() { if ($_POST) { if ($_POST['password'] == $_POST['reppassword']) { if ($_POST['email'] == $_POST['repemail']) { $logdb

嘿,伙计们,我在pp.php文件中有这个代码

<?php
class system{
public function register() {

        if ($_POST) {

            if ($_POST['password'] == $_POST['reppassword']) {
                if ($_POST['email'] == $_POST['repemail']) {

                    $logdb = new PDO('mysql:host=localhost;dbname=kikojust', 'kikojust', '123456');
                    $logdb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                    $stmt = $logdb->prepare('INSERT INTO usreg
                                    (email, password, firstname, lastname, phone, mobile, adress, city, postalcode, country)
                                    VALUES
                                    (:email, :pass, :fname, :lname, :phone, :mobile, :adress, :city, :code, :country');
                    $stmt->bindParam(":email", $_POST['email'],PDO::PARAM_STR, 20);
                    $stmt->bindParam(":pass", $_POST['password'],PDO::PARAM_STR, 20);
                    $stmt->bindParam(":fname", $_POST['firstname'],PDO::PARAM_STR, 20);
                    $stmt->bindParam(":lname", $_POST['lastname'],PDO::PARAM_STR, 20);
                    $stmt->bindParam(":phone", $_POST['phone'],PDO::PARAM_STR, 16);
                    $stmt->bindParam(":mobile", $_POST['mobile'],PDO::PARAM_STR, 16);
                    $stmt->bindParam(":adress", $_POST['adress'],PDO::PARAM_STR, 50);
                    $stmt->bindParam(":city", $_POST['city'],PDO::PARAM_STR, 10);
                    $stmt->bindParam(":code", $_POST['postalcode'],PDO::PARAM_STR, 10);
                    $stmt->bindParam(":country", $_POST['country'],PDO::PARAM_STR, 14);
                    $stmt->execute();

                    echo 'You have being well donne registered, go to <a href="index.php">Login</a> to enter in our site';
                } else {
                    echo 'Go back to <a href="register.php">Register</a> and check your Email';
                }
            } else {
                echo 'Go back to <a href="register.php">Register</a> and check your password.';
            }
        } else {
            echo '
                <html>
                    <head>
                        <title>
                            Register!
                        </title>
                    </head>
                    <body>
                        <form name="login" action="" method="POST">
                            First Name:
                            <input type="text" name="firstname"/>
                            Last Name:
                            <input type="text" name="lastname"/>
                            <br />
                            Password: 
                            <input type="password" name="password"/>
                            Repeat Password: 
                            <input type="password" name="reppassword"/><br />
                            <br />
                            Email: 
                            <input type="text" name="email"/>
                            Repeat Email: 
                            <input type="text" name="repemail"/><br />
                            <br />
                            Phone: 
                            <input type="tel" name="phone"/>
                            Mobile: 
                            <input type="tel" name="mobile"/><br />
                            <br />
                            Adress: <br />
                            <input type="text" name="adress"/><br />
                            City: <br />
                            <input type="text" name="city"/><br />
                            Postal Code: <br />
                            <input type="text" name="postalcode"/><br />
                            Country: <br />
                            <input type="text" name="country"/><br />
                            <button type="submit">Register</button>
                        </form>
                    </body>
                </html>';
        }
    }
}

但是我不明白问题出在哪里,因为stmt语句已经准备好并绑定好了,但是没有运行,所有的条目都与表中的条目一样正确,如果我在sql控制台中运行相同的sql,那么它运行得很好,你们能告诉我代码中的失败之处吗?thks

您缺少SQL查询的括号。更新查询行,如下所示

$stmt = $logdb->prepare('INSERT INTO usreg
                                    (email, password, firstname, lastname, phone, mobile, adress, city, postalcode, country)
                                    VALUES
                                    (:email, :pass, :fname, :lname, :phone, :mobile, :adress, :city, :code, :country);');

由于语法错误,您的准备失败:'

  $logdb->prepare(".....  (:email,..snip..., :country');
                                                     ^--missing )
                 1        2                           1
注意括号的编号。您已放弃关闭值列表的
,但已关闭
()
准备值列表。应该是

 ...., :country)');

为什么SQL语句不以
)结尾;“
?正如max所说,您缺少了查询的
值部分的右括号。omg 1简单的括号让我转了好几个小时,伙计们,真的是这样吗;)非常感谢,我只需要:country);(而不是:country);”;就像你说的,但我明白了thnks的意思;)
  $logdb->prepare(".....  (:email,..snip..., :country');
                                                     ^--missing )
                 1        2                           1
 ...., :country)');