В Wordpress, как я вытянул бы данные внешней Microsoft SQL database для отображения как таблица только для чтения?
Чтобы быть ясным, это не вопрос о том, как преобразовать Wordpress в MS SQL, а скорее как вытянуть данные для определенного виджета из источника вне основного Wordpress DB. Данные, от которых я должен вытянуть, оказывается, находятся в базе данных SQL MS.
Ради примера, скажем, что я должен вытянуть местоположения хранилища и часы:
/* Retrieve store locations from the external MS SQL database*/
SELECT id, name, address, city, state, zip, phone, openingTime, closingTime
FROM locations
ORDER BY name
И дисплей, что данные в таблицу на странице Wordpress:
<table>
<tr>
<th>Store Name</th>
<th>Address</th>
<th>Store Hours</th>
</tr>
<!-- Display rows of store locations here -->
</table>
Поскольку include
будет оценивать содержимое файлов, например, выполнять через интерпретатор PHP, а также использовать include_path для поиска файлов, я бы сказал, что include
медленнее. file _ get _ contents
обработает содержимое файла как строку. Меньше накладных расходов, больше скорости.
file _ get _ contents () является предпочтительным способом считывания содержимого файла в строку. Для повышения производительности будет использоваться метод отображения памяти, если он поддерживается операционной системой.
Однако, если после вывода файла, вместо того, чтобы поместить его в строку, readfile ()
даже немного быстрее, чем file _ получить _ содержимое
. Учитывая, что включить
'ing также будет выводить любой не PHP контент, это, вероятно, более вероятно, то, что вы после, я полагаю.
Пересмотренный эталонный тест на компьютере:
$start1 = microtime(1);
for($i=0; $i<100000; $i++) {
include 'log.txt';
}
$end1 = microtime(1) - $start1;
и
$start2 = microtime(1);
for($i=0; $i<100000; $i++) {
echo file_get_contents('log.txt');
}
$end2 = microtime(1) - $start2;
и
$start3 = microtime(1);
for($i=0; $i<100000; $i++) {
readfile('log.txt');
}
$end3 = microtime(1) - $start3;
Результат
echo PHP_EOL, $end1, // 137.577358961
PHP_EOL, $end2, // 136.229552984
PHP_EOL, $end3; // 136.849179029
-121--2590721- Вместо использования setInterval и слепой попытки отправки данных на сервер проверьте свойство navigator.onLine:
if (navigator.onLine) {
// Send data using XMLHttpRequest
} else {
// Queue data locally to send later
}
Можно также добавить прослушиватели в объект Window для событий "online" и "offline"
-121--2586057-Wordpress работает на PHP, поэтому необходимо использовать поставщик PHP для SQL Server. См. Доступ к базам данных SQL Server с помощью PHP .
Если вы используете Wordpress в Linux, вам нужна FreeTDS, см. PHP mssql Requirements .