在更新/插入之前计数。
如此简化,这就是我想做的事情:
expo-cli start
我的想法是使用查询:
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");
但是我还是无法访问该计数。
答案 0 :(得分:0)
我实际上打算使用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
的{{1}}语句。
如果关联的PDOStatement执行的最后一条SQL语句是SELECT语句,则某些数据库可能返回该语句返回的行数。但是,并非所有数据库都可以保证这种行为,便携式应用程序不应该依赖此行为。