简体   繁体   English

致命错误:带有消息'SQLSTATE [42000]的未捕获异常'PDOException':语法错误或访问冲突PHP和PDO

[英]Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation PHP & PDO

Last Week working all correctly but today i get this error: 上周工作正常,但今天我收到此错误:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; 致命错误:带有消息'SQLSTATE [42000]的未捕获异常'PDOException':语法错误或访问冲突:1064 SQL语法中有错误; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''Mees'')' at line 1' in /www/data08/users/i/itsiim.planet.ee/htdocs/progemine/system/lisa.php:47 Stack trace: #0 /www/data08/users/i/itsiim.planet.ee/htdocs/progemine/system/lisa.php(47): PDOStatement->execute(Array) #1 {main} thrown in /www/data08/users/i/itsiim.planet.ee/htdocs/progemine/system/lisa.php on line 47 检查与您的MariaDB服务器版本对应的手册,以便在/www/data08/users/i/itsiim.planet.ee/htdocs/progemine/system/的第1行''Mees''''附近使用正确的语法lisa.php:47堆栈跟踪:#0 /www/data08/users/i/itsiim.planet.ee/htdocs/progemine/system/lisa.php(47):PDOStatement-> execute(Array)#1 {main}在第47行的/www/data08/users/i/itsiim.planet.ee/htdocs/progemine/system/lisa.php中引用

PHP Code here PHP代码在这里

    <?php 
    require 'conf/db.php';
    if ( !empty($_POST)) {
        // keep track validation errors
        $nimiError = null;
        $emailError = null;
        $mobiilError = null;
        $suguError = null;

        // keep track post values
        $nimi = $_POST['nimi'];
        $email = $_POST['email'];
        $mobiil = $_POST['mobiil'];
        $sugu = $_POST['sugu'];

        // validate input
        $valid = true;
        if (empty($nimi)) {
            $nimiError = 'Palun sisesta nimi';
            $valid = false;
        }

        if (empty($email)) {
            $emailError = 'Palun sisesta e-mail';
            $valid = false;
        } else if ( !filter_var($email,FILTER_VALIDATE_EMAIL) ) {
            $emailError = 'Palun sisesta korrektne e-mail';
            $valid = false;
        }

        if (empty($mobiil)) {
            $mobiilError = 'Palun sisesta mobiili number';
            $valid = false;
        }

        if (empty($sugu)) {
            $suguError = 'Palun vali sugu';
            $valid = false;
        }

        // insert data
        if ($valid) {
            $pdo = Database::connect();
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $sql = "INSERT INTO kliendid (nimi,email,mobiil,sugu) values(?, ?, ?, ?')";
            $q = $pdo->prepare($sql);
            $q->execute(array($nimi,$email,$mobiil,$sugu));
            Database::disconnect();
            header("Location: index.php");
        }
    }
?>
<!DOCTYPE html>
<html lang="et">
<head>
    <meta charset="utf-8">
    <title>Klientide andmed by Siim Aarmaa IS-13</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>

<body>
    <div class="container">

                <div class="col-md-6 col-md-offset-3">
                    <div class="row">
                        <h3>Lisa uus klient</h3>
                    </div>

                    <form class="form-horizontal" action="lisa.php" method="post">
                      <div class="form-group <?php echo !empty($nimiError)?'error':'';?>">
                        <label class="col-sm-2 control-label">Nimi</label>
                        <div class="controls">
                            <input name="nimi" type="text"  placeholder="Nimi" value="<?php echo !empty($nimi)?$nimi:'';?>">
                            <?php if (!empty($nimiError)): ?>
                                <span class="help-block"><?php echo $nimiError;?></span>
                            <?php endif; ?>
                        </div>
                      </div>
                      <div class="form-group <?php echo !empty($emailError)?'error':'';?>">
                        <label class="col-sm-2 control-label">E-mail</label>
                        <div class="controls">
                            <input name="email" type="text" placeholder="E-mail" value="<?php echo !empty($email)?$email:'';?>">
                            <?php if (!empty($emailError)): ?>
                                <span class="help-block"><?php echo $emailError;?></span>
                            <?php endif;?>
                        </div>
                      </div>
                      <div class="form-group <?php echo !empty($mobiilError)?'error':'';?>">
                        <label class="col-sm-2 control-label">Mobiili number</label>
                        <div class="controls">
                            <input name="mobiil" type="text"  placeholder="Mobiili number" value="<?php echo !empty($mobiil)?$mobiil:'';?>">
                            <?php if (!empty($mobiilError)): ?>
                                <span class="help-block"><?php echo $mobiilError;?></span>
                            <?php endif;?>
                        </div>
                      </div>
                      <div class="form-group <?php echo !empty($suguError)?'error':'';?>">
                        <label class="col-sm-2 control-label">Sugu</label>
                        <div class="controls">
                            <input name="sugu" type="radio" value="<?php echo !empty($mees)?$mees:'Mees';?>">Mees
                            <input name="sugu" type="radio" value="<?php echo !empty($naine)?$naine:'Naine';?>">Naine
                            <?php if (!empty($suguError)): ?>
                                <span class="help-block"><?php echo $suguError;?></span>
                            <?php endif;?>
                        </div>
                      <div class="form-group">
                          <button type="submit" class="btn btn-success">Lisa klient</button>
                          <a class="btn btn-default" href="index.php">Tagasi</a>
                        </div>
                    </form>
                </div>
    </div> <!-- /container -->
  </body>
</html>`enter code here`

You have a syntax error, a exta single quote in your query: 您的查询中存在语法错误,exta单引号:

 $sql = "INSERT INTO kliendid (nimi,email,mobiil,sugu) values(?, ?, ?, ?')";
                                                                        ^

Change it to: 将其更改为:

 $sql = "INSERT INTO kliendid (nimi,email,mobiil,sugu) values(?, ?, ?, ?)";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 消息为“ SQLSTATE [42000]”的未捕获异常“ PDOException”:语法错误或访问冲突: - Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 致命错误:消息为“ SQLSTATE [42000]”的未捕获异常“ PDOException”:语法错误或访问冲突:1064 - Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 致命错误:未捕获的 PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064 PHP8.1.x - Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 PHP8.1.x PHP致命错误:消息为&#39;SQLSTATE [42000]的未捕获异常&#39;PDOException&#39; - PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000] PHP致命错误:消息为&#39;SQLSTATE [42000]的未捕获异常&#39;PDOException&#39;: - PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: 我收到了消息“ SQLSTATE [42000]”之类的未捕获的异常“ PDOException”错误:语法错误或访问冲突:1064 - I got the error like Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 带有消息&#39;SQLSTATE [42000]的未捕获异常&#39;PDOException&#39;:语法错误或访问冲突:1064 - Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 未捕获的 PDOException: SQLSTATE[42000]: 语法错误或访问冲突 - Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation 致命错误:未捕获的异常 &#39;PDOException&#39;,消息为 &#39;SQLSTATE[42000]: - Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: PDO + MySQL:PDOException,消息为“ SQLSTATE [42000]:语法错误或访问冲突:1064 - PDO + MySQL: PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM