Evropská směrnice NIS2 přináší nové požadavky v oblasti kybernetické bezpečnosti, které se promítají také do správy doménových jmen. Do českého právního řádu je směrnice implementována prostřednictvím nového zákona o kybernetické bezpečnosti. Jedním z praktických důsledků této legislativní změny je posílení požadavků na dostupnost a správnost kontaktních údajů držitelů domén. Správce registru domény .cz, sdružení CZ.NIC, je v
… více »Jonathan Thomas oznámil vydání nové verze 3.5.0 video editoru OpenShot (Wikipedie). Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.
Byla vydána (𝕏, Bluesky) nová verze 2026.1 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem 8 nových nástrojů v oficiálním oznámení na blogu.
Vláda jmenovala novým zmocněncem pro digitalizaci a strategickou bezpečnost prvního náměstka ministra vnitra Lukáše Klučku. Ten ve funkci nahradil poslance Roberta Králíčka poté, co Králíček na tento post vládního zmocněnce rezignoval. Klučka chce do roka digitalizovat všechny státní služby tak, aby vyhověly zákonu o právu na digitální služby, přičemž dosavadní plán Fialovy vlády počítal s dokončením digitalizace až někdy v roce
… více »Byl vydán Mozilla Firefox 149.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze bezplatnou vestavěnou VPN s 50 GB přenesených dat měsíčně, zobrazení dvou webových stránek vedle sebe v jednom panelu (split view) nebo možnost přidat poznámky k panelům (Firefox Labs). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 149 bude brzy k dispozici také na Flathubu a Snapcraftu.
Byly vydány nové verze 5.3.0 a 6.0.0 svobodného multiplatformního programu pro skicování, malování a úpravu obrázků Krita (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Obě verze vycházejí ze stejného zdrojového kódu – rozdíl je v použitých verzích Qt a KDE Frameworks. Krita 6.0.0 je první vydání postavené na Qt 6 a stále je považovaná za experimentální. Má lepší podporu Waylandu. Přináší podporu protokolu Wayland
… více »Byla vydána nová verze 10.2 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze nové balíčky Immich, Immich Machine Learning, uv a RustDesk Client.
TypeScript (Wikipedie), tj. JavaScript rozšířený o statické typování a další atributy, byl vydán v nové verzi 6.0. Příští verze 7.0 je kvůli výkonu přepisována do programovacího jazyka Go.
Christian Schaller z Red Hatu na svém blogu popsal své zkušenosti s používáním AI při vývoji open source aplikací pro Linux. Pomocí různých AI aktualizoval nebo vytvořil aplikace Elgato Light GNOME Shell extension, Dell Ultrasharp Webcam 4K, Red Hat Planet, WMDock, XMMS resuscitated (aktualizace z GTK 2 a Esound na GTK 4, GStreamer a PipeWire) a Monkey Bubble. SANE ovladač pro skener Plustek OpticFilm 8200i se mu zatím nepovedl.
Americké firmy Tesla a SpaceX postaví v texaském Austinu moderní komplex na výrobu čipů pro umělou inteligenci (AI). Součástí projektu s názvem Terafab budou dvě moderní továrny na výrobu čipů – jedna se zaměří na automobily a humanoidní roboty, druhá na datová centra ve vesmíru. Uvedl to generální ředitel těchto firem Elon Musk. Projekt by podle odhadů měl stát 20 miliard USD (zhruba 425 miliard Kč).
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
Co tam dělá ta hvězda (*) nechci načítat tunu údajů. Nedáš to prosím líp? Na tohle já fakt nemám... Díky moc
$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í.
.
Ale pokud si myslíš, že je tvá knihovna tak super, tak ji zveřejni - i s patřičnou dokumentací - a ještě lépe pro autora dotazu připrav nějaké školení, třeba si ji vybere
.
.
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],
]);
A ano, ten meta jazyk je pro mě klíčová featura dibi
.
$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...
A ne, už tu nic psát nebudu. Přikladů je plný ten tutoriál. Já tuhle debatu končím, koho dibi zaujalo, ať si proletí ten tutoriál, koho ne, ať si používá, co je mu milé. Nejsem žádný evangelizátor kruciš... Jen mi šlo o to doporučit dibi jako alternativu k PDO pro autora dotazu, protože se mi s ním osobně pracuje lépe (a pravděpodobně nejsem sám).
Ano, dibi je vrstva nad PDO, mysqli, mysql, pqsql, oracle...
A ne, dibi (pro mě) nedělá to co PDO.
Benefit dibi je (pro mě) například jeho metajazyk. Pro seznámení s ním doporučuji quickstart
.
.
Teď vážně, dibi má pro mě přínos v jiných věcech (syntaxe - meta jazyk, částečná přenositelnost dotazů mezi databázemi).
A pro DarkKnight - ano, já používám o vrstvu víc, takže kvůli mě zemřou ročně miliony koťátek!
.
Ale dobře, abych projevil trošku sebereflexe, uznávám, že můj první post v tomto vlákně byl (schválně) trošičku provokativní, ale aspoň to spustilo zajímavou diskuzi. Je pravda, že PDO rozhraní rád nemám (jako ty nemáš rád dibi
).
Tiskni
Sdílej: