webForumDet fria alternativet

Ett ljus tänt (?) om modern databasaccess

PHPur PHP

26 svar · 1 704 visningar · startad av itpastorn

Medlem sedan feb. 2007278 inlägg
Frågan#1

Eftersom jag vid tillfälle klagat på att det verkar som om ingen fattat att mysql-interfacet är osäkrare, långsammare och på de flesta sätt fulare än PDO, så har jag nu sökt råda bot på situationen.

Sex mycket kommenterade exempel på hur man ansluter säkert och effektiv med PDO från en planerad bok om webbutveckling är nu upplagt på min hemsida.

Följande länk räknas kanske som länkspam, men jag har ju också ombetts att "komma med något" och inte bara klaga: http://keryx.se/dev/

Lars Gunther

Medlem sedan aug. 2004903 inlägg
#2

Mkt trevlig läsning och bra exempel... kudos till dig.
Har faktiskt letat efter en liten guide till PDO som går igenom grunderna såm du gör.

Nästa projekt blir med PDO for sure.

PS. När kommer boken?

Medlem sedan juni 20006 031 inlägg
#3

Bra med lite genomgång av PDO.
Men en fråga.
Hur får du in $options i ditt exempel på sid.10?

Medlem sedan juli 200012 978 inlägg
#4

Verkar vara ett bra initiativ. Vill du ha hjälp med korrekturläsning så hojta till.
Stavfel nedsätter förtroendet för ditt alster annars. Sedär lite hot fick jag in!

Medlem sedan feb. 2007278 inlägg
#5

Ooops! Fixat $options

Pedda skrev:

Bra med lite genomgång av PDO.
Men en fråga.
Hur får du in $options i ditt exempel på sid.10?

Nice catch!

Jag skriver koden i Eclipse och klistrar in den i Open Office Writer (vilket bevarar färgformatteringen -trevligt nog). Tyvärr leder det till viss kod-duplicering.

$db  = new PDO($dsn,$dbuser,$dbpass);

Skall vara

$db  = new PDO($dsn,$dbuser,$dbpass,$options);

PDF-filen fixad också.

Manualen om PDO:s konstruktor: http://se.php.net/manual/en/function.PDO-construct.php

Tack för visad vaksamhet!

Medlem sedan feb. 2007278 inlägg
#6

Lasp skrev:

Verkar vara ett bra initiativ. Vill du ha hjälp med korrekturläsning så hojta till.
Stavfel nedsätter förtroendet för ditt alster annars. Sedär lite hot fick jag in!

Alla brister som hittas får ni gärna påtala. Jag skrev i all hast och har inte korrekturläst själv!

När jag tänker efter så har jag även missat att använda den inbyggda rättstavningsfunktionen, vilken jag alltid brukar använda. Jag missar lite med fingrarna på min nya dator, märker jag. Tack och lov att Firefox låter mig se stavfel i webbformulär - som här!

Medlem sedan apr. 2001762 inlägg
#7

Intressant, tackar!

Medlem sedan maj 20031 472 inlägg
#8

29Enkla databasexempel för PH 5.2+

Ska de inte vara PHP?
Finns fler stavfel, tex PHPP.

Mycket intressant måste jag säga!

Medlem sedan feb. 2007278 inlägg
#9

Tack

greyhound skrev:

Ska de inte vara PHP?
Finns fler stavfel, tex PHPP.

Mycket intressant måste jag säga!

1. Åtgärdat. Tack!

2. Tack!

Medlem sedan mars 20041 505 inlägg
#10

Helt klart det mest intressanta material på svenska om PHP som jag har läst. :)

Medlem sedan feb. 2007278 inlägg
#11

Ett fel till rättat

Jag har hittat ett fel till, denna gången i koden.

I exempel 5, när man skapar $options:

$options  = array(PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
Medlem sedan apr. 2006244 inlägg
#12

Tjenare!

Jag får börja med att tacka pastorn för att han tagit upp detta intressanta ämne. Jag undrar dock vad jag gör för fel när jag får felmeddelandet i stil med "Can not find drivers"? Jag kör på windows med php 5.1 och drivrutinerna sqlite2, sqlite

Medlem sedan aug. 2004903 inlägg
#13

kanske måste installera modulerna för PDO?

Medlem sedan apr. 2006244 inlägg
#14

Som jag sa så har jag PDO-drivrutinerna sqlite och sqlite2

Medlem sedan feb. 2007278 inlägg
#15

vic skrev:

Som jag sa så har jag PDO-drivrutinerna sqlite och sqlite2

Man behöver installera de PDO-specifika sqlite-modulerna.

http://se.php.net/manual/en/ref.pdo-sqlite.php

Medlem sedan jan. 20023 327 inlägg
#16

Ett exempel med PDO och Store Procedures skulle kanske kunna vara något för din bok?

Medlem sedan apr. 2006244 inlägg
#17

itpastorn skrev:

Man behöver installera de PDO-specifika sqlite-modulerna.

http://se.php.net/manual/en/ref.pdo-sqlite.php

Hur vet jag om de är installerade? Följande anger phpinfo

PDO
PDO support = enabled
PDO drivers = sqlite2, sqlite

pdo_sqlite
PDO Driver for SQLite 3.x = enabled
PECL Module version = 1.0.1 $Id: pdo_sqlite.c,v 1.10.2.6 2006/01/01 12:50:12 sniper Exp $
SQLite Library = 3.3.7undefined

Räcker inte detta?

Medlem sedan feb. 2007278 inlägg
#18

Compusa skrev:

Ett exempel med PDO och Store Procedures skulle kanske kunna vara något för din bok?

Stored procedures och triggers kommer att nämnas, men inte behandlas på djupet. Deras roll i en webbapplikation är sällan särskilt stor.

Enligt killarna på MySQL ger prepared statements bättre prestanda än stored procedures. http://hades.phparch.com/files/tek07/jay_pipes-kill_mysql_performance.pdf

Liksom triggers frestas man dessutom av dem att lägga affärslogik i sin databas, där den sortens logik inte hör hemma. Men visst finns det undantag mot denna grundregel.

Medlem sedan feb. 2007278 inlägg
#19

pdo-sqlite

vic skrev:

Hur vet jag om de är installerade? Följande anger phpinfo...

Kör du på Windows eller Linux (eller Mac, eller...)

Hur ser (relevanta delar av) din php.ini ut?

Följande guide kan vara till hjälp om du kör Windows:
http://www.corephp.co.uk/archives/36-A-Guide-to-using-PHP-5-Extensions-on-Windows.html

Medlem sedan apr. 2006244 inlägg
#20

Till sist fick jag det att fungera när jag inledde det hela med:

dl('php_pdo_mysql.dll');
133 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)