php - PHP-> PDO 更新如果选择返回少于 10 行,否则插入
问题描述
在更新/插入之前计数。
如此简化,这就是我想要做的:
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 }
但是我无论如何都无法访问该计数..
解决方案
我实际上的意思是使用 mysqlcount()
函数而不是 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 ) {
.....
对于更长的答案,PDOrowcount()
不适用于select
带有mysql
.
如果关联 PDOStatement 执行的最后一条 SQL 语句是 SELECT 语句,则某些数据库可能会返回该语句返回的行数。但是,不能保证所有数据库都具有此行为,并且不应依赖于可移植应用程序。
推荐阅读
- html - Angular 6 - 如何在订阅()中停止无限轮询
- autodesk-forge - Autodesk 用户管理 API
- javascript - 当我最小化窗口时,如何控制应该显示图像的哪些部分?
- python - 如何返回字符串向量匹配的numpy矩阵行的索引?
- python - Python 3.7.3 路径和 VS 代码冲突
- python - 如何使用 AWS CLI 创建 python AWS Lambda 函数?
- javascript - 如何从 php 中的 soundcloud 剧集获取最新剧集?
- php - 如何根据 ID 回显 WordPress 图像
- snapchat - Snapkit 中的friendUserId 是什么?
- r - 使用 R 从论坛抓取网页,如何删除以前用户的引用并导航到下一页?