PDO类-语法错误或访问冲突1064

优萨夫·哈利克(Yusaf Khaliq)

我正在创建一个用于连接到数据库的类,但不断收到一条消息,说我的sql语法有错误,当回显我得到的查询时SELECT id, username from :table where :row = :value,它似乎没有任何错误。

<?php 
    class db{
        protected $datab;
        public function __construct($username, $password, $host, $dbname, $options){
            try { 
                $this->datab = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options); 
            } 
            catch(PDOException $ex) { 
                die("Failed to connect to the database: " . $ex->getMessage()); 
            }
            $this->datab->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
            $this->datab->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); 
        }
        public function select($array, $table, $row, $value){
            $query = "SELECT";
            foreach($array as $val) {

                if ($val === end($array)){
                    $query.= " ".$val;
                    }else{
                    $query.= " ".$val.",";
                }
            }
            $query.=" FROM :table WHERE :row = :value";
            $query_params = array(
            ':table' => $table,
            ':row' => $row,
            ':value' => $value
            ); 
            echo $query; // SELECT id, username from :table where :row = :value
            try{ 
                $stmt = $this->datab->prepare($query); 
                $result = $stmt->execute($query_params); 
            } 
            catch(PDOException $ex) { 
                die("Failed to run query: " . $ex->getMessage()); 
            }
            $row = $stmt->fetch(); 
            return $row;
        }
    }
    $kit = new db("root", "", "localhost", "kit", array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
    $kit->select(array("id", "username"), "user", "username", "yusaf");

?>  

错误信息:

Failed to run query: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''user' where 'username' = 'yusaf'' at line 1

编辑

我很不高兴,请评论一下你为什么给我这个。我想我应该提到这只是出于学习目的,我实际上并不会在没有意义的应用程序中使用此类。

里格斯愚蠢

您不能使用:table或:row作为替换值,您必须知道表和列的名称。

SELECT ID,来自:table的用户名,其中:row =:value

应该

SELECT ID,表名中的用户名,其中columnname =:value

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQLSTATE [42000]:语法错误或访问冲突:1064

来自分类Dev

SQLSTATE [42000]:语法错误或访问冲突:1064 PHP / MySQL

来自分类Dev

Doctrine2 SQLSTATE [42000]:语法错误或访问冲突:1064

来自分类Dev

语法错误或访问冲突:1064

来自分类Dev

如何修复错误“ CDbCommand ... SQLSTATE [42000]:语法错误或访问冲突:1064”

来自分类Dev

无法运行查询:SQLSTATE [42000]:语法错误或访问冲突:1064

来自分类Dev

使用PDO和SQL Server插入日期时出现“语法错误或访问冲突”

来自分类Dev

PDO UPDATE:语法错误或访问冲突

来自分类Dev

SQLSTATE [42000]:语法错误或访问冲突:1064 Symfony 2.7.3应用程序

来自分类Dev

迁移时出现错误,“语法错误或访问冲突:1064”

来自分类Dev

PDOException SQLSTATE [42000]:语法错误或访问冲突:1064

来自分类Dev

Laravel Migration SQLSTATE [42000]:语法错误或访问冲突:1064

来自分类Dev

使用存储过程时出现Laravel 7错误:-SQLSTATE [42000]:语法错误或访问冲突:1064

来自分类Dev

SQLSTATE [42000]:语法错误或访问冲突:1064 laravel

来自分类Dev

PHP PDO语法错误

来自分类Dev

为什么会出现“ SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误...”?(PDO-PHP)

来自分类Dev

语法错误或访问冲突:1064

来自分类Dev

语法错误或访问冲突:1064 SQL语法有错误;

来自分类Dev

使用PDO和SQL Server插入日期时出现“语法错误或访问冲突”

来自分类Dev

MySQL PDO语法错误或访问冲突:1064

来自分类Dev

PHP / PDO SQLSTATE [42000]:语法错误或访问冲突:1064噩梦

来自分类Dev

DB:SQLSTATE [42000]:语法错误或访问冲突:1064错误

来自分类Dev

CakePHP 3错误:SQLSTATE [42000]:语法错误或访问冲突:1064

来自分类Dev

语法错误或PDO上的访问冲突

来自分类Dev

PHP MYSQL语法错误或访问冲突:1064

来自分类Dev

在更改表语法错误或访问冲突时:1064 您的 sql 语法有错误;

来自分类Dev

致命错误:未捕获的 PDO 异常:SQLSTATE[42000] 语法错误或访问冲突

来自分类Dev

语法错误或访问冲突:代码中的 1064

来自分类Dev

错误:“SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误。”。.env 或 PDO 中的问题?

Related 相关文章

  1. 1

    SQLSTATE [42000]:语法错误或访问冲突:1064

  2. 2

    SQLSTATE [42000]:语法错误或访问冲突:1064 PHP / MySQL

  3. 3

    Doctrine2 SQLSTATE [42000]:语法错误或访问冲突:1064

  4. 4

    语法错误或访问冲突:1064

  5. 5

    如何修复错误“ CDbCommand ... SQLSTATE [42000]:语法错误或访问冲突:1064”

  6. 6

    无法运行查询:SQLSTATE [42000]:语法错误或访问冲突:1064

  7. 7

    使用PDO和SQL Server插入日期时出现“语法错误或访问冲突”

  8. 8

    PDO UPDATE:语法错误或访问冲突

  9. 9

    SQLSTATE [42000]:语法错误或访问冲突:1064 Symfony 2.7.3应用程序

  10. 10

    迁移时出现错误,“语法错误或访问冲突:1064”

  11. 11

    PDOException SQLSTATE [42000]:语法错误或访问冲突:1064

  12. 12

    Laravel Migration SQLSTATE [42000]:语法错误或访问冲突:1064

  13. 13

    使用存储过程时出现Laravel 7错误:-SQLSTATE [42000]:语法错误或访问冲突:1064

  14. 14

    SQLSTATE [42000]:语法错误或访问冲突:1064 laravel

  15. 15

    PHP PDO语法错误

  16. 16

    为什么会出现“ SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误...”?(PDO-PHP)

  17. 17

    语法错误或访问冲突:1064

  18. 18

    语法错误或访问冲突:1064 SQL语法有错误;

  19. 19

    使用PDO和SQL Server插入日期时出现“语法错误或访问冲突”

  20. 20

    MySQL PDO语法错误或访问冲突:1064

  21. 21

    PHP / PDO SQLSTATE [42000]:语法错误或访问冲突:1064噩梦

  22. 22

    DB:SQLSTATE [42000]:语法错误或访问冲突:1064错误

  23. 23

    CakePHP 3错误:SQLSTATE [42000]:语法错误或访问冲突:1064

  24. 24

    语法错误或PDO上的访问冲突

  25. 25

    PHP MYSQL语法错误或访问冲突:1064

  26. 26

    在更改表语法错误或访问冲突时:1064 您的 sql 语法有错误;

  27. 27

    致命错误:未捕获的 PDO 异常:SQLSTATE[42000] 语法错误或访问冲突

  28. 28

    语法错误或访问冲突:代码中的 1064

  29. 29

    错误:“SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误。”。.env 或 PDO 中的问题?

热门标签

归档