Как включать () все файлы PHP из каталога?

Хотя это явно не указано для setTimestamp(int parameterIndex, Timestamp x), драйверы должны следовать правилам, установленным setTimestamp(int parameterIndex, Timestamp x, Calendar cal) javadoc :

Устанавливает назначенный параметр в заданное значение java.sql.Timestamp, используя данный объект Calendar. Драйвер использует объект Calendar для построения значения SQL TIMESTAMP, которое затем отправляет драйвер в базу данных. С помощью объекта Calendar драйвер может вычислять временную метку с учетом пользовательского часового пояса. Если объект Calendar не указан, драйвер использует часовой пояс по умолчанию, который используется для виртуальной машины, на которой запущено приложение.

blockquote>

Когда вы звоните с помощью setTimestamp(int parameterIndex, Timestamp x), драйвер JDBC использует часовой пояс виртуальной машины для расчета даты и времени временной метки в этом часовом поясе. Эта дата и время - это то, что хранится в базе данных, и если столбец базы данных не хранит информацию о часовом поясе, тогда любая информация о зоне теряется (что означает, что она зависит от приложения (ов), использующего базу данных, чтобы использовать (например, сохранить в отдельной колонке).

Например: Ваш часовой пояс GMT + 2. Вы сохраняете «2012-12-25 10 : 00: 00 UTC ". Фактическое значение, хранящееся в базе данных, -« 2012-12-25 12:00:00 ». Вы возвращаете его снова: вы возвращаете его снова как« 2012-12-25 10:00:00 UTC "(но только если вы извлечете его с помощью getTimestamp(..)), но когда другое приложение обратится к базе данных в часовом поясе GMT ​​+ 0, оно будет получать временную метку как« 2012-12-25 12:00:00 UTC ».

Если вы хотите сохранить его в другом часовом поясе, вам нужно использовать setTimestamp(int parameterIndex, Timestamp x, Calendar cal) с экземпляром календаря в требуемом часовом поясе. Просто убедитесь, что вы также используете эквивалентный геттер с тем же часовым поясом, когда получение значений (если вы se TIMESTAMP без информации о часовом поясе в вашей базе данных).

Итак, если вы хотите сохранить фактический часовой пояс GMT, вам нужно использовать:

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
stmt.setTimestamp(11, tsSchedStartTime, cal);

С JDBC 4.2 совместимый драйвер должен поддерживать java.time.LocalDateTimejava.time.LocalTime) для TIMESTAMPTIME) через get/set/updateObject. Классы java.time.Local* не имеют временных зон, поэтому преобразование не требуется (хотя это может открыть новый набор проблем, если ваш код действительно принял определенный часовой пояс).

224
задан Rytmis 1 March 2009 в 11:53
поделиться

4 ответа

foreach (glob("classes/*.php") as $filename)
{
    include $filename;
}
424
ответ дан Karsten 4 November 2019 в 13:31
поделиться

Вот способ, которым я включаю много классов от нескольких папок в PHP 5. Это будет только работать, если у Вас будут классы все же.

/*Directories that contain classes*/
$classesDir = array (
    ROOT_DIR.'classes/',
    ROOT_DIR.'firephp/',
    ROOT_DIR.'includes/'
);
function __autoload($class_name) {
    global $classesDir;
    foreach ($classesDir as $directory) {
        if (file_exists($directory . $class_name . '.php')) {
            require_once ($directory . $class_name . '.php');
            return;
        }
    }
}
49
ответ дан Cheekysoft 4 November 2019 в 13:31
поделиться

Я предлагаю, чтобы Вы использовали readdir () функция и затем цикл и включали файлы (см. 1-й пример на той странице).

0
ответ дан Stiropor 4 November 2019 в 13:31
поделиться

При использовании php 5, Вы могли бы хотеть использовать автозагрузка вместо этого.

19
ответ дан SorinV 4 November 2019 в 13:31
поделиться
Другие вопросы по тегам:

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