Как я получаю внешние данные из MS SQL из Блога Wordpress?

В 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>
5
задан Dan Sorensen 24 February 2010 в 18:08
поделиться

1 ответ

Поскольку 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 .

3
ответ дан 15 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

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