Archive for the ‘PHP’ Category

Schaalbaarheid PHP/Mysql

Tuesday, April 11th, 2006

Interessant verhaal over de schaalbaarheid van PHP/Mysql/Java. Als voorbeeld wordt Digg aangehaald. Belangrijkste conclusies: PHP schaalt prima naar miljoenen hits per dag, het is de backend die problemen veroorzaakt. Wel moet PHP wat getweakt worden. Een hele geruststelling.

mysql_insert_id() en InnoDB

Wednesday, March 22nd, 2006

Bij gebruik van transacties geeft de php-functie mysql_insert_id() verschillende waarden, afhankelijk van wanneer je het aanroept. Wanneer je mysql_insert_id() aanroept voor de commit, dan is de waarde correct. Echter na de commit is de waarde 0. Mysql “SELECT LAST_INSERT_ID” geeft wel de correcte waarde, maar dan weer niet na een ROLLBACK.

in PHP:
(more…)

Transacties in mysql 4.0 en php

Monday, March 20th, 2006

Transactiesupport zit in Mysql sinds versie 4.0 (werkt alleen bij tabellen van het type ‘InnoDB’). Bij een applicatie die hiërarchische data verwerkt eigenlijk noodzakelijk. Eén update statement fout en de hele structuur is weg.

De php functie accepteert een reeks sql statements en voert ze 1 voor 1 uit. Als er iets mis gaat wordt een rollback uitgevoerd.


function query($qrs)
{
if (!is_array($qrs) or sizeof($qrs) == 0)
{
return false;
}
array_unshift($qrs, "START TRANSACTION");
$ok = false;
$i = 0;
do {
$ok = mysql_query($qrs[$i]);
++$i;
} while ($ok === true && $i < sizeof($qrs)); if ($ok === true) { mysql_query("COMMIT"); return true; } else { mysql_query("ROLLBACK"); return false; } }