Lieber dedlfix,
habe Deine Vorschläge jetzt so umgesetzt:
public function send ($sql = '', $params = array()) {
$t = $this;
if (empty($sql)) {
return;
}
$st = null;
try {
$st = $t->pdo->prepare($sql);
$st->execute($params);
} catch (\PDOException $ex) {
$t->errors[] = $t->get_error(
$ex,
array('sql' => $sql, 'params' => $params)
);
}
if (is_object($st) && method_exists($st, 'rowCount')) {
return $st->rowCount();
}
}
Es sollte auch nicht erwähnt bleiben, dass der Rückgabewert von rowCount
nicht immer eine Zahl > 0 zurück gibt, vor allem dann, wenn beim UPDATE
identische Werte zurückgeschrieben werden. Abhilfe schafft PDO::MYSQL_ATTR_FOUND_ROWS => true
bei der Parameter-Übergabe im Konstruktor-Aufruf, den ich nun so geändert habe:
public function __construct ($settings) {
$t = $this;
$t->errors = array();
try {
$t->pdo = new \PDO(
sprintf(
'mysql:dbname=%1$s;host=%2$s;charset=UTF8;',
$settings['db-name'],
$settings['db-host']
),
$settings['db-user'],
$settings['db-pw'],
array(
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
\PDO::MYSQL_ATTR_FOUND_ROWS => true,
\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
)
);
} catch (\PDOException $e) {
$t->errors[] = $t->get_error($e);
}
}
Nun klappt bisher alles so, wie ich mir das wünsche. Supi!
Liebe Grüße,
Felix Riesterer.