Felix Riesterer: Was will mir diese PDO-Meldung sagen? "SQLSTATE[HY000]: General error"

Beitrag lesen

Lieber Christian,

Verwende einfach zwei Methoden, exec und get oder so ;-)

OK. Habe nun eine Methode send ergänzt:

/**
 * function to send a query to the DB
 *
 * This function passes the parameters through to the PDO object.
 *
 * @param string SQL
 * @param array parameters list
 */
public  function send ($sql = '', $params = array()) {
  $t = $this;

  if (!empty($sql)) {

    if (empty($params)) {

      try {

        $t->pdo->query($sql);

      } catch (\PDOException $ex) {


        $t->errors[] = $t->get_error(
          $ex,
          array('sql' => $sql, 'params' => $params)
        );

      }

    } else {


      try {

        $st = $t->pdo->prepare($sql);
        $st->execute($params);

      } catch (\PDOException $ex) {


        $t->errors[] = $t->get_error(
          $ex,
          array('sql' => $sql, 'params' => $params)
        );

      }
    }
  }
}

Was meinst Du dazu? Geht das auch eleganter? Mir war es wichtig, die Parameter-Substitution zu erhalten. Dann kann ich mein eingangs erwähntes UPDATE nun mit MyDB::send ausführen lassen, inklusive der Ersetzungsparameter.

Liebe Grüße,

Felix Riesterer.