23. 2 Установка Smarty
В книге написано про актуальную версию 2.6.26.
На 02.12.2020 актуальной является версия 3.1.35.
Сочетание этой версии Smarty и PHP7 заставляет внести изменения в код дальнейших глав:
Однако данный пример не работает, ругается на ошибку в libs/sysplugins/smarty_internal_ data.php on line 290.
Чтобы обойти эту ошибку нужно исправить код на:
разница существенная! вставляемые таким образом данные, экранируются самими pdo
Цитата:
Вызов PDO::prepare() и PDOStatement::execute() для запросов, которые будут запускаться многократно с различными параметрами, повышает производительность приложения, так как позволяет драйверу кэшировать на клиенте и/или сервере план выполнения запроса и метаданные, а также помогает избежать SQL иньекций, так как нет необходимости экранировать передаваемые параметры.
Про ошибку-то я заметил, это не вопрос.
Да, действительно, данный способ помог решить проблему.
Обычно я bindю данные для excute, но в данном случае вставляется/обновляется единичная запись, поэтом решил пойти прямым путём. Не думал, что здесь и проблема с экранированием решается.
Нужно писать в базу некий текст. В котором иногда встречается апостроф '
mysql, естественно, отказывается писать его в базу, при этом двойные кавычки и проч пишутся без проблем.
Если я пользуюсь addslashes(), то всё пишется в базу, зато материал, который берётся из этой базы для отображения на сайте отображается не в виде ", а в виде /", т. е. с ненужными мне слэшами.
Подскажите, как можно решить эту проблему на стадии записи в БД, т. к. вывод на экран из БД я изменить не могу.
Имеется презентация (16 страниц) в формате pdf.
Стоит задача вывести эту презентацию на сайте и реализовать возможность оставлять комментарии и сохранять к конкретному слайду.
Гугл на фразу "скрипт php вывода pdf" ничего полезного не даёт.
Отсюда вопрос: м. б. выводить презентацию надо не в формате pdf, а конвертировать в какой-то другой формат? Или есть возможность с pdf проделать такой фокус?
Ещё раз обращаю ваше внимание, что все вычисления можно сделать прямо в запросе к таблице. С учётом последних добавлений запрос будет сложнее (нужно будет сделать что-то вроде этого
SELECT t1.id, MAX(t1.procent) FROM `tbl_proq`
LEFT JOIN (SELECT id, (totalsize/maxsize) as procent FROM `tbl_proq`) t1 ON t1.id=tbl_proq.id
WHERE ...)
и дальше проверяем на количество записей.
Запрос на работоспособность не проверял, но как-то так.
Какой смысл делать танцы с бубном в массиве, когда всё это можно в запросе сделать?
Добавляете в where (totalsize + 999) <= maxsize limit 1
Если запрос вернёт вам запись - вот получите то, что надо, если записей не будет, значит "нету места".
Всем ку, нужна помощь
Есть массив вида
["2014-01-02" => "30",
"2014-01-02"=>"10",
"2014-01-03"=>"2"
]
Сдаётся мне, что это не массив, т. к. не может быть в массиве 2 ключей с одним именем.
Если это таблица в mysql, то там просто сделать запрос с SUM(заработок) GROUP BY (дата).
Но, если всё же с массивами баловаться, то будет так: