Portál AbcLinuxu, 6. května 2025 01:31
$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.