mirror of
https://github.com/php/presentations.git
synced 2026-03-24 15:42:33 +01:00
28 lines
648 B
XML
28 lines
648 B
XML
<slide title="Error Handling Trick">
|
|
|
|
<break />
|
|
|
|
<example><![CDATA[<?php
|
|
$db = sqlite_open("/path/to/database");
|
|
|
|
while (1) {
|
|
$ses_id = md5(mt_rand());
|
|
if (@sqlite_query("INSERT INTO session_table (ses_id) VALUES('".$ses_id."')", $db)) {
|
|
// success, unique session generated
|
|
break;
|
|
}
|
|
$errno = sqlite_last_error($db);
|
|
if ($errno != SQLITE_CONSTRAINT) {
|
|
// some error (not duplicate key) occurred
|
|
die(sqlite_error_string($errno));
|
|
}
|
|
}
|
|
?>]]>
|
|
</example>
|
|
|
|
<list fontsize="3.2em">
|
|
<bullet>Lock free operation, queries do not need to wait for the processes to finish.</bullet>
|
|
<bullet>Fewer queries are executed.</bullet>
|
|
</list>
|
|
|
|
</slide> |