Создание плагина wordpress с базой данных sqlite (php)

Я делаю очень простой плагин PHP, чтобы я мог читать данные из таблицы и отображать их в нижнем колонтитуле моего сайта WordPress. (Я не разработчик PHP и не очень знаком с его синтаксисом)

$connection = new SQLite3('timetable.db');

$today = date("d/m");
$todayDate = (string)$today;

$sql = <<<HEREDOC
SELECT morning, morning, evening
FROM manchester
where date = :date
HEREDOC;

$rs = $connection->prepare($sql);

$rs->bindValue(':date', $todayDate, SQLITE3_TEXT);
$result = $rs->execute();

function praytime_shortcode_fn() { 
while($row = $result->fetchArray(SQLITE3_ASSOC)) {
  echo "morning = ". $row['morning'] . "<br>";
  echo "afternoon = ". $row['morning'] ."<br>";
  echo "evening = ". $row['evening'] ."<br>";
}


}

add_shortcode( 'praytime', 'praytime_shortcode_fn' );

Как видите, я использую короткий код молитвы для отображения цикла while на моем веб-сайте. Однако он выдает ошибку каждый раз, когда я включаю его на своем веб-сайте WordPress.

Ошибка, похоже, связана с использованием библиотеки SQLite. Я попытался связать базу данных, указав полный путь, но все равно не работал.

(код работает сам по себе на локальном компьютере, поэтому база данных и запросы в порядке)

У вас есть какие-нибудь предложения? Буду очень признателен. / Спасибо

$result недоступен в этой области функций. php.net/manual/en/language.variables.scope.php
Scuzzy 11.04.2018 14:05

Включен ли на веб-сервере sqllite в вашем файле php.ini?

jeff 11.04.2018 14:16

@Scuzzy Если я добавлю глобальный результат $; после $ result и под $ result = $ rs-> execute (); исправит ли это проблему с областью действия?

Danial Bagheri 11.04.2018 14:27

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

Scuzzy 11.04.2018 15:12

@Scuzzy Большое спасибо за совет.

Danial Bagheri 11.04.2018 17:57

@jeff спасибо, на самом деле проблема с базой данных заключалась в поддержке php для sqlite3. Спасибо.

Danial Bagheri 11.04.2018 17:57
0
6
404
0

Другие вопросы по теме