<b>Fatal error</b>: Uncaught PDOException - Ich finde den Fehler nicht


loddarmattheus

Erfahrenes Mitglied
Hallo Jungs,
eigentlich eine einfache SQL-Query, aber ich finde den Fehler einfach nicht.

Ich habe eine MySQL Database wie diese hier auszugsweise:
btc.jpg
Allerdings bekomme ich bei dieser einfachen Abfrage in der post.php immer eine Fehlermeldung, obwohl in Zeile 12 das Symbol BTCUSDT definitiv existiert:

PHP:
<?php
  class Post {
    // DB stuff
    private $conn;
    private $table = 'binance_ticker';
    private $coin = 'BTCUSDT';
    // Post Properties
    public $ticker_id;
    public $ticker_ts;
    public $symbol;
    public $bidPrice;
    public $bidQty;
    public $askPrice;
    public $askQty;   
    // Constructor with DB
    public function __construct($db) {
      $this->conn = $db;
    }
    // Get Posts
    public function read() {
      // Create query
      $query = 'SELECT ticker_ts, symbol, bidPrice, bidQty, askPrice, askQty
                                FROM ' . $this->table . '
                                WHERE symbol = ' . $this->coin . '
                                ORDER BY
                                ticker_ts DESC';
      
      // Prepare statement
      $stmt = $this->conn->prepare($query);
      // Execute query
      $stmt->execute();
      return $stmt;
    }   
  }
Fehlerausgabe:
Code:
<br />
<b>Fatal error</b>:  Uncaught PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'BTCUSDT' in 'where clause' in /www/htdocs/***/api_btc/models/Post.php:31
Stack trace:
#0 /www/htdocs/***/api_btc/models/Post.php(31): PDOStatement-&gt;execute()
#1 /www/htdocs/***/api_btc/post/read_btc.php(13): Post-&gt;read()
#2 {main}
  thrown in <b>/www/htdocs/***/api_btc/models/Post.php</b> on line <b>31</b><br />
Kann einer der Profis vielleicht einmal drübergucken? Danke Loddar
 

Sempervivum

Erfahrenes Mitglied
Bin kein Profi, aber mir scheint, 'BTCUSDT' ist ein String und muss daher in der Query in einfache Hochkommas eingeschlossen werden. Sonst wird es offenbar als Spaltenname interpretiert.