Регистрация ошибок PHP не работает через .htaccess

В более общем случае, где могло быть много сотен отображений к каждому из новых значений, Вы будете составлять отдельную таблицу старых и новых значений, и затем использовать это в операторе UPDATE. На одном диалекте SQL:

CREATE TEMP TABLE mapper (old_val CHAR(5) NOT NULL, new_val CHAR(5) NOT NULL);
...multiple inserts into mapper...
INSERT INTO mapper(old_val, new_val) VALUES('a.1', 'a1');
INSERT INTO mapper(old_val, new_val) VALUES('a-1', 'a1');
INSERT INTO mapper(old_val, new_val) VALUES('b.1', 'b1');
INSERT INTO mapper(old_val, new_val) VALUES('b-1', 'b1');
...etcetera...

UPDATE tbl
   SET title = (SELECT new_val FROM mapper WHERE old_val = tbl.title)
   WHERE title IN (SELECT old_val FROM mapper);

Оба избранных оператора крайне важны. Первым является связанный подзапрос (не обязательно быстро, но быстрее, чем большинство альтернатив, если таблица картопостроителя имеет тысячи строк), который вытаскивает новое значение из таблицы отображения, которая соответствует старому значению. Второе гарантирует, что только те строки, которые имеют значение в таблице отображения, изменяются; это крайне важно как иначе, заголовок будет установлен в NULL для тех строк без отображающейся записи (и те были записями, которые были в порядке, прежде чем Вы начали).

Для нескольких альтернатив, операции СЛУЧАЯ в порядке. Но если у Вас будут сотни или тысячи или миллионы отображений для выполнения, затем Вы, вероятно, превысите пределы длины SQL-оператора в Вашем DBMS.

15
задан kapex 29 October 2012 в 16:43
поделиться

2 ответа

Вы, вероятно, захотите использовать php_value , а не php_flag , когда устанавливаете путь к журналу. php_flag используется только для установки логических свойств конфигурации.

php_flag display_errors off 
php_flag log_errors On 
php_value error_log /var/www/vhosts/hostname/logs/fo_errors.log 
14
ответ дан 1 December 2019 в 01:17
поделиться

Попробуйте добавить следующую тестовую страницу в корневой веб-каталог:

<?php
// debug.php
echo "<pre>";
echo "log_errors = [", ini_get('log_errors'), "]\n";
echo "error_log = [", ini_get('error_log'), "]\n";
echo "writeable? ", is_writable(ini_get('error_log')) ? 'Yes' : 'No', "\n";
echo "</pre>";
error_log("Test from error_log()");
user_error("Test error from user_error()");

Перейдите к / debug .php , и вы должны увидеть следующий результат:

log_errors = [1]
error_log = [/var/www/vhosts//logs/fo_errors.log]
Writeable? Yes

Вы также должны видеть два сообщения, появляющихся в вашем файле журнала каждый раз, когда вы посещаете страницу.

23
ответ дан 1 December 2019 в 01:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: