Для тех, кто не знает, как использовать PDO (исходя из функций В основном читайте mysql_
), я сделал очень, очень простую PDO-обертку , которая представляет собой один файл. Он существует, чтобы показать, насколько легко выполнять все обычные приложения, которые необходимо выполнить. Работает с PostgreSQL, MySQL и SQLite.
Мне нужен один столбец
$count = DB::column('SELECT COUNT(*) FROM `user`);
Мне нужны результаты массива (key => value) (т. е. для создания selectbox)
$pairs = DB::pairs('SELECT `id`, `username` FROM `user`);
Мне нужен результат одной строки
$user = DB::row('SELECT * FROM `user` WHERE `id` = ?', array($user_id));
Мне нужен массив результатов
$banned_users = DB::fetch('SELECT * FROM `user` WHERE `banned` = ?', array(TRUE));
Существует много способов сделать это. Файлы PID являются традиционным способом сделать это. Вы могли также держать блокировку на файле, например, сама программа. Эта маленькая часть кода добьется цели:
use Fcntl ':flock';
open my $self, '<', $0 or die "Couldn't open self: $!";
flock $self, LOCK_EX | LOCK_NB or die "This script is already running";
Одно преимущество перед файлами PID состоит в том, что файлы автоматически разблокированы, когда программа выходит. Намного легче реализовать надежным способом.
Сделайте старый прием файла PID.
аплодисменты HTH
,
Rob
Все опции, которые Вы перечисляете, прекрасны. Одна вещь с этим, хотя, состоит в том, чтобы знать, что в редких случаях, можно закончить с процессом, который работает в течение очень долгого времени (т.е. застрявшее ожидание на чем-то). Вы могли бы хотеть думать о том, чтобы следить, сколько времени другой рабочий экземпляр выполнял и возможно отправляет себе предупреждение, если он превышает определенное количество времени (такого как день, возможно).