EemissionMedlem sedan dec. 19996 721 inlägg
itpastorn skrev:
Enligt killarna på MySQL ger prepared statements bättre prestanda än stored procedures.
MySQL hantering av SP är lite speciell, så det gäller definitivt där. Annars inte. Trots detta är jag en tillskyndare av att endast använda SP när det verkligen behövs....
itpastorn skrev:
Liksom triggers frestas man dessutom av dem att lägga affärslogik i sin databas, där den sortens logik inte hör hemma.
...av just det skälet.
TroxyMedlem sedan mars 20041 505 inläggPå tal om PDO, hur är det egentligen med utvecklingen av det?
Senaste stable släpptes för ett över ett år sedan.
Jag väntar fortfarande på att dom ska fixa den här buggen som ställer till massor av problem för mig.
Troxy skrev:
På tal om PDO, hur är det egentligen med utvecklingen av det?
Senaste stable släpptes för ett över ett år sedan.
Jag väntar fortfarande på att dom ska fixa den här buggen som ställer till massor av problem för mig.
Har du röstat på den så att PHP-utvecklarna ser att intresse finns att få den åtgärdad?
Jag ser att PDO_ODBC inte främst anpassats till MSSQL ännu, så det kan ju ligga dig i fatet.
Utvecklingen gick annars ganska snabbt till och med PHP 5.1.6, sedan verkar Wez F ha fått annat att tänka på och utvecklingstakten har avstannat. Speciell efterlyser man från MySQL AB intresse att porta PDO-MySQL från libmyssql till mysqlnd.
På phpportalen håller vi också på att diskutera ett par intressanta buggar: http://www.phpportalen.net/viewtopic.php?t=83977
Korta versionen: Emulerade prepared statements för MySQL ger samma skydd som mysql_real_escape_string, men äkta prepared statements ger inte 100 % skydd på Windowsplattformen!
itpastorn skrev:
http://keryx.se/dev/
Efter diskussion på främst phpPortalen, så är guiden nu uppdaterad.
Förändringar:
2007-07-01
Statusbeskrivning av säkerheten med PDO prepared statements och när det är aktuellt att avaktivera emulerade dito för MySQL.
Rör kommentarer i exempel 4 och tipsruta till exempel 6.
Diskussionen återfinns på adressen http://www.phpportalen.net/viewtopic.php?t=83977
MmUTANTMedlem sedan mars 200533 inlägg Hur fungerar PDO prepare med mysqls WHERE/AND IN()?
Alltså där ett värde är t.ex 1,2,4,9,12
Får t.ex inte följande att funger:
$sql = 'SELECT DISTINCT c.clip_id, c.title FROM clips c
LEFT JOIN clips_to_categories ctc ON (c.clip_id = ctc.clip_id)
WHERE ctc.category_id IN (:cid)
AND c.active = 1
ORDER BY c.clip_id DESC';
$stmt = $db->prepare($sql);
$stmt->execute(array(':cid' => isset($_GET['cid']) ? $_GET['cid'] : 0));
Medans = :cid och endast ett värde fungerar bra.
Är fortfarande lite skeptisk till PDO, inledde starkt med att få PHP att crasha med ett klassiskt "PHP has encountered an Access Violation at XXXXXXX", vilket jag inte sett på över 6 månader sen PHP 5.2.1 kom.
spangoMedlem sedan juni 20008 205 inläggPrepared statements och IN-klausulen är inte speciellt goda vänner någonstans, tyvärr, och det stämmer även för php. Det du får göra är att bygga upp sql-frågan dynamiskt så att in-satsen blir något i stil med WHERE ctc.category_id IN (:cid0, :cid1, :cid2), eller så får du fixa det på det gamla onda sättet genom att stoppa in värdena på direkten.
TroxyMedlem sedan mars 20041 505 inlägg