Byl vydán Mozilla Firefox 143.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Nově se Firefox při ukončování anonymního režimu zeptá, zda chcete smazat stažené soubory. Dialog pro povolení přístupu ke kameře zobrazuje náhled. Obzvláště užitečné při přepínání mezi více kamerami. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 143 bude brzy k dispozici také na Flathubu a Snapcraftu.
Byla vydána betaverze Fedora Linuxu 43 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 21. října.
Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.2 (𝕏, Mastodon). Přehled novinek, vylepšení a nových efektů v poznámkách k vydání.
Byla vydána nová verze 4.5 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána verze 3.0 (Mastodon) nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). S novou verzí formátu záznamu asciicast v3, podporou live streamingu a především kompletním přepisem z Pythonu do Rustu.
Canonical oznámil, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie) v Ubuntu.
Tržní hodnota americké společnosti Alphabet, která je majitelem internetového vyhledávače Google, dnes poprvé překonala hranici tří bilionů dolarů (62,1 bilionu Kč). Alphabet se připojil k malé skupině společností, které tuto hranici pokořily. Jsou mezi nimi zatím americké firmy Nvidia, Microsoft a Apple.
Spojené státy a Čína dosáhly dohody ohledně pokračování populární čínské platformy pro sdílení krátkých videí TikTok v USA. V příspěvku na síti Truth Social to dnes naznačil americký prezident Donald Trump. Dosažení rámcové dohody o TikToku vzápětí oznámil americký ministr financí Scott Bessent, který v Madridu jedná s čínskými představiteli o vzájemných obchodních vztazích mezi USA a Čínou. Bessentova slova později potvrdila také čínská strana.
MKVToolNix, tj. sada nástrojů pro práci s formátem (medialnym kontajnerom) Matroska, byl vydán ve verzi 95.0. Podpora přehrávání formátu Matroska míří do Firefoxu [Bug 1422891, Technický popis]. Přehrávání lze již testovat ve Firefoxu Nightly.
Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 211. sraz, který proběhne v pátek 19. září od 18:00 ve Studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Na srazu proběhne přednáška Jiřího Eischmanna o nové verzi prostředí GNOME 49. Nemáte-li možnost se zúčastnit osobně, přednáškový blok bude opět streamován živě na server VHSky.cz a následně i zpřístupněn záznam.
function select($table, $array){ $a = implode(', ', array_keys($array)); $b = implode(', ', array_fill(0, sizeof($array), '=?')); $sql = 'SELECT '.$a.' FROM '.$table.' WHERE '.$b.' LIMIT 1'; $stmt = $pdo->prepare($sql); $stmt->execute(array_values($array)); }
function select($table, $array){ $a = implode(', ', array_fill(0, sizeof($array), '=?')); $sql = 'SELECT * FROM '.$table.' WHERE '.$a.''; $stmt = $pdo->prepare($sql); $stmt->execute(array_values($array)); return $stmt = fetchAll(PDO::FETCH_ASSOC); }takhle by to melo fungovat
$stmt->fetchAll(PDO::FETCH_ASSOC);
$sql = ...
si přidej
var_dump($sql);a sleduj, jaké SQL dotazy generuješ. Snad ti docvakne, v čem děláš chybu.
dibi::query("SELECT * FROM [whatever]")
$res = dibi::select('product_id')->as('id') ->select('title') ->from('products') ->innerJoin('orders')->using('(product_id)') ->orderBy('title') ->execute();...které dibi umí, ale já je nemám rád a nepoužívám je. Speciálně pro Kita zvýrazním: Špagety jsou jednou z variant zápisu, statický mód je jednou z variant použití. Plnohodnotné objekty jako výsledky dotazů jsou samozřejmě užitečné, ale to patří už spíše do modelové vrstvy a ano, modelová vrstva může interně používat například dibi (nebo třeba PDO), věc vkusu
$res
? Umí to něco nebo je to jen Messenger, ve kterém je veřejný atribut product_id
?
echo "Výsledkem je: $res";Používám to docela často, zejména pokud $res má složitější strukturu, například řádek tabulky nebo položka seznamu s odkazy.
$res = dibi::query('select id from products where name = %s', $name)->fetchSingle();Pokud je to více políček, už musíš mít nějaké pravidlo, jak to převést na string, třeba tím, že si vytvoříš vlastní Row, třeba MyRow, která dědí od DataRow, definuješ ji metodu __toString() a nastavíš ji jako třídu pro výsledek:
class MyRow extends DibiRow { public function __toString() { $res = ""; foreach($this as $name => $value) { $res .= "$name: $value
"; } return $res; } } $res = dibi::query('select * from products where name = %s', $name)->setRowClass('MyRow')->fetch(); echo $res;
dibi::query('UPDATE `table` SET `text`=%s', $text, 'WHERE flag=%i', $flag);která je IMHO velmi návyková a pohodlná. Navíc to, že je dibi jistá (velmi primitivní - což je dobře!) mezivrstva velmi pomáhá tomu, kdyby náhodou někdy přecházel na jinou databázi. Výkonostně tu žádné měřitelné ztráty nejsou (bavíme se o tomto módu, ne o těch objektových špagetách). Niméně i v tomhle "array" módu umí dibi velmi užitečná kouzla, například:
dibi::query('UPDATE `table` SET ', array('attribut1' => 'foo', 'atribut2' => 'bar'));
$update = $db->prepare("UPDATE `table` SET `text`=? WHERE flag=?"); $update->execute(array($text, $flag)); $druhy_update = $db->prepare("UPDATE `table` SET `attribut1`=?, `attribut2`=?"); $druhy_update->execute(array('foo', 'bar'));a protože to mám ukryto v objektech modelu, které se o danou relaci starají, tak ani nevadí, že je to na dvou řádcích. Třída zůstává miniaturní.
dibi::query('SELECT * FROM `table` WHERE %and', array( array('number > %i', 10), array('number < %i', 100), ));
dibi::query('SELECT * FROM `table` WHERE %and', [ ['number > %i', 10], ['number < %i', 100], ]);
$options = array( 'driver' => 'mysql', 'host' => 'localhost', 'username' => 'root', 'password' => '***', 'database' => 'table', ); // v případě chyby vyhodí DibiException $connection = new DibiConnection($options); $connection->query('TRUNCATE `table`');A já sám DI s dibi normálně používám. A kdyby sis otevřel ten tutoriál, tak tenhle kód najdeš úplně nahoře. Ale ne, pán si to nerozklikne, aby se mu náhodou nerozbila jeho pravda o tom, jak je dibi hrozné a radši na něj bude plivat a ze sebe dělat akorát...
Tiskni
Sdílej: