Portál AbcLinuxu, 25. října 2025 00:09
$dbh->exec("DELETE FROM $this->table WHERE id=$id")
tak to nefunguje (ani s query namísto exec). Přitom
$dbh->query("SELECT * FROM $this->table WHERE id=$id")
funguje úplně v pohodě.
Dokážete mi prozradit, co dělám blbě?
Řešení dotazu:
$dbh->queryExec("DELETE FROM $this->table WHERE id=$id");
nebo
sqlite_exec("DELETE FROM $this->table WHERE id=$id",$dbh);
?
Fatal error: Call to undefined method PDO::queryExec() in ... Fatal error: Call to undefined method PDO::sqlite_exec() in ...
beginTransaction() a tedy nefunguje autocommit a je třeba commit explicitně zavolat?print_r($dbh->errorInfo()); by vypsalo co?
Array ( [0] => HY000 [1] => 6 [2] => database table is locked )
new PDO() ve poli jako čtvrtý parametr něco jako PDO::ATTR_PERSISTENT => true) a něco nedopadlo dobře a vysí tam nějaká transakce, nebo to mažete na blbém místě, nebo je tabulka opravu LOCK-nutá explicitně (jestli to SQLite lze)…
)
PDOStatement do promněné, na ní udělal fetchColumn() a pak ješte closeCursor().
Pokud to rovnou neudělat postupem $stmt = $dbh->prepare(); $stmt->execute(); $stmt->fetch(); $stmt->closeCursor();.$table_check, takže bych přidal jako první na řádek 14 $table_check->closeCursor();
takže bych přidal jako první na řádek 14 $table_check->closeCursor();Super, funguje! Mockrát děkuji za radu i věnovaný čas. Ota
.
Teď se tluču do hlavy, že jsem se nedonutil to ukládat do MySQLV MySQL by se to možná nedalo tak jednoduše vyřešit jedním složeným SQL dotazem jako např. v SQLite.)
DELETE FROM table WHERE NOT id IN (SELECT max(id) FROM table GROUP BY ip);Ponechá jen poslední záznam od každé IP.

DELETE FROM table WHERE NOT id IN (SELECT max(id) FROM (SELECT id,ip FROM table) AS t1 GROUP BY ip);beginTransaction() před tím není
print_r($dbh->errorInfo());?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.