Forums / National / Russian / Тех. поддержка / php 7.3 ->affectedRows;

Kopusha
#1 2020-10-09 14:21
Такие конструкции стали возвращать >0 в любом случае, погуглил и нашел вот это
 
$sqltmp = $db->delete($db_trash, "tr_date < $timeago");
$deleted = $db->affectedRows;
if ($deleted > 0)
{
cot_log($deleted.' old item(s) removed from the trashcan, older than '.$cfg['plugin']['trashcan']['trash_prunedelay'].' days', 'adm');
}

 

Посоветуйте как с этим бороться. Спасибо!
jCube Group
#2 2020-10-09 16:19

Ну можно перейти на php 5.6 именно на этой версии и написан движок,  ели можно переписать класс чтоб работал с mysqli. ну или хотябы одну функцию.

Сделал группу в телеге https://t.me/Cotonti_help если что помогу с вопросами.
Kopusha
#3 2020-10-09 16:27

Как верно на данном примере переписать под 7.3? Спасибо!

Added 1 minute later:

mysqli гуглил, визуально все понял но не заработало(
Видимо накосячил как всегда.

jCube Group
#4 2020-10-10 04:44

Я посмотрел класс,  там PDO а это очень хорошо.

https://www.php.net/manual/ru/pdostatement.rowcount.php

попробуйте этот метод

Сделал группу в телеге https://t.me/Cotonti_help если что помогу с вопросами.
Kopusha
#5 2020-10-10 10:08

Судя по всему все работает гораздо проще

$sqltmp = $db->delete($db_trash, "tr_date < $timeago");
if ($sqltmp > 0)
{
cot_log($sqltmp.' old item(s) removed from the trashcan, older than '.$cfg['plugin']['trashcan']['trash_prunedelay'].' days', 'adm');
}

 

jCube Group
#6 2020-10-10 10:51

Логично!

if($sqltmp) так тоже можно, 0 = false так что если что-то есть то эту true

 
Сделал группу в телеге https://t.me/Cotonti_help если что помогу с вопросами.
Kopusha
#7 2020-10-10 11:05

Странно что не работало, оказывается в system/database.php есть

	public function __get($name)
	{
		switch ($name)
		{
			case 'affectedRows':
				return $this->_affected_rows;
				break;
			case 'count':
				return $this->_count;
				break;
			case 'timeCount':
				return $this->_tcount;
				break;
			default:
				return isset($this->_tables[$name]) ? $this->_tables[$name] : null;
		}
	}

 

Added 5 minutes later:

Да и в модуле polls все работает...

			if ($alreadyvoted != 1 && !($cfg['polls']['ip_id_polls'] == 'id' && $usr['id'] == 0))
			{
				foreach ($vote as $val)
				{
					$sql2 = $db->query("UPDATE $db_polls_options SET po_count = po_count+1 WHERE po_pollid = $id AND po_id = '" . (int) $val . "'");
				}
				if ($db->affectedRows > 0)
				{
					$db->insert($db_polls_voters, array(
						'pv_pollid' => $id,
						'pv_userid' => (int) $usr['id'],
						'pv_userip' => $usr['ip']
					));
				}
			}

Стоит признать что моих знаний отчего в опросах работает а в корзине нет - недостаточно.

This post was edited by Kopusha (2020-10-10 11:10, 3 years ago)