PHP -> PDO update, если select возвращает менее 10 строк, вставьте - PullRequest
0 голосов
/ 30 ноября 2018

Количество до обновления / вставки.

так упрощенно вот что я хочу сделать:

if (select >= 10) { pdo -> Update } else { pdo -> insert }

моя идея заключалась в том, чтобы использовать запрос:

$select_today_usage = $DBcon->prepare("SELECT kood FROM koodid k WHERE STR_TO_DATE(kpv,'%d.%m.%Y')=current_date");

изатем проверьте количество строк:

if ($count = $update_kood->rowCount()>=10) {//PDO update } else { //PDO insert }

Но я все равно не могу получить доступ к этому количеству ..

1 Ответ

0 голосов
/ 30 ноября 2018

Я действительно хотел использовать функцию mysql count(), а не PHP.При вашем текущем подходе вы выберете каждую запись в вашей БД (что может привести к большим затратам памяти). Я бы сделал:

SELECT count(*) as the_count 
FROM koodid k 
WHERE STR_TO_DATE(kpv,'%d.%m.%Y')=current_date and kasutatud=1

, затем извлечу эту 1 строку и получу доступ к индексу the_count.

$select_today_usage = $DBcon->prepare("SELECT kood FROM koodid k WHERE STR_TO_DATE(kpv,'%d.%m.%Y')=current_date");
$select_today_usage->execute();
$row = $select_today_usage->fetch(PDO::FETCH_ASSOC);
if($row['the_count'] >= 10 ) {
     .....

Для более длинного ответа PDO rowcount() не работает с select инструкциями с mysql.

Если последний оператор SQL был выполнен ассоциированным PDOStatementбыл оператор SELECT, некоторые базы данных могут возвращать количество строк, возвращаемых этим оператором.Однако такое поведение не гарантируется для всех баз данных и не должно использоваться для переносимых приложений.

- http://php.net/manual/en/pdostatement.rowcount.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...