Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Выполнить множество sql запросов с отчетом, как?

Выполнить множество sql запросов с отчетом, как?


     17.12.2019    sql, замена слов    Общие вопросы по PHP, Хаки, MySQL    676

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


Подскажите что делаю не так. Спасибо

Ответа пока нет


7 комментариев

UsurpatorVaticana
Юзер

UsurpatorVaticana - 18 декабря 2019 08:14 -


$solll[]='UPDATE dle_post SET metatitle = REPLACE(metatitle, "|", "|");';



$solll = $db->query = ( "
 UPDATE dle_post SET metatitle = REPLACE(metatitle, "|", "|");
");

Обернуть специальные символы по стандартам PHP, по коду ошибки поймешь
И я не уверен что UPDATE возвращает какие либо значения
С селектами эта конструкция работает в связке с циклом while($row = $db->get_row($solll)) {...}

ushkom
Юзер

ushkom - 18 декабря 2019 15:43 -

Не совсем понял Ваш пример. $solll это переменная в которую подставляются запросы.
В самом phpmyadmin при выполнении UPDATE выводится отчет о количестве замен, времени исполнения, я думаю эти данные возможно получить.

UsurpatorVaticana
Юзер

UsurpatorVaticana - 18 декабря 2019 08:17 -

В DLE 13 нашёл ещё multi_query в классе db, там можно все апдеты написать сразу, но насколько понял код, она вообще ничего не выплевывает в ответ, просто все запросы отдаёт в мускул

temporary
Юзер

temporary - 18 декабря 2019 11:17 -

А что мешает вызывать multi_query со вторым параметром FALSE, а результаты ошибок брать в $db->query_errors_list?!

UsurpatorVaticana
Юзер

UsurpatorVaticana - 18 декабря 2019 11:30 -

я сам не опытный, можно пример кода для общего развития?

temporary
Юзер

temporary - 19 декабря 2019 09:16 -

накидал на вскидку, не проверял:
$query = "SELECT COUNT(*) AS count FROM {prefix}_post;";
$query .= "SELECT COUNT(*) AS count FROM {userprefix}_userss;"; //error!
if (version_compare($db->mysql_version, '5.6.4', '<')) {
	$storage_engine = "MyISAM";
} else $storage_engine = "InnoDB";
$query = str_ireplace(array("{prefix}", "{userprefix}", "{charset}", "{engine}"), array(PREFIX, USERPREFIX, COLLATE, $storage_engine), $query);
$db->query_errors_list = array();
$db->multi_query(trim($query), false);
if (count($db->query_errors_list)) {
	foreach ($db->query_errors_list as $error) {
		echo htmlspecialchars($error['query'], ENT_QUOTES, $config['charset'])." ".
			htmlspecialchars($error['error'], ENT_QUOTES, $config['charset']);
	}
}
$db->query_errors_list = array();

ushkom
Юзер

ushkom - 19 декабря 2019 09:22 -

Я в обще запутался, учить и учить. Не могли бы в моем коде показать что куда и для чего)) Я так понял это для вывода отчета? Спасибо

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

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

наверх