php - 有没有一种方法可以在所有行上执行,而不仅仅是最近的?
问题描述
我的代码执行但仅针对存储在数据库中的最新行。它不会检查其他行并继续对最近行中的相同数据执行。我缺少什么功能?
添加 while(true) 条件,该条件现在循环但仅循环最近的。
$db = mysqli_connect("" , "", "") or die("Check connection parameters!");
// Optionally skip select_db and use: mysqli_connect(host,user,pass,dbname)
mysqli_select_db($db,"ds_main") or die(mysqli_error($db));
if (mysqli_connect_error()) {
die ('Failed to connect to MySQL');
} else {
/*SUCCESS MSG*/
echo '';
}
$sqlCommand = "SELECT companyname, domainurl, expirationdate FROM domains WHERE expirationdate BETWEEN CURDATE() AND CURDATE()+INTERVAL 30 DAY";
$query = mysqli_query($db, $sqlCommand) or die (mysqli_error($db));
//fetch the data from the database
$domainnames = "domainurl";
$domaindate = "expirationdate";
while ($row = mysqli_fetch_array($query)) {
$domainnames = $row['domainurl']; // list of expiring URLs
$domaindate = $row['expirationdate']; // list of expiry dates
} // that's it for the loop
if (count($domainnames) > 0 ) {
//carrys out a task
}
// Free the results
mysqli_free_result($query);
//close the connection
mysqli_close($db);
}
?>
我希望代码能够跨所有行执行,而不仅仅是最近的行。我是 php 新手。
解决方案
您的代码在所有行上“执行”,但在每一行上,它都覆盖了最新行的值$domainnames
和$domaindate
最新行的值。我怀疑您可能打算构建一个域名和日期数组,更像这样:
$domainnames = array(); // list of expiring URLs
$domaindate = array(); // list of expiry dates
while ($row = mysqli_fetch_array($query)) {
$domainnames[] = $row['domainurl']; // add to list
$domaindate[] = $row['expirationdate']; // add to list
} // that's it for the loop
推荐阅读
- apache-spark - 如何忽略我们从 CSV 读取输入数据的 Spark Dataframe 中的双引号?
- mysql - 如何查询一位客户及其推荐客户并显示他们的所有交易
- c++ - 将 2 个 cstring 数组添加到 1 个 cstring 数组中
- linq - linq 查询的结果不按顺序
- javascript - 在客户端窗口内播放 wav 或 mp3 文件
- r - 提取和使用数据集中的当前数据
- linux - 带有 cat EOF 问题的嵌套 for 循环
- amazon-web-services - dynamodb 的迁移(结构更新)
- amazon-web-services - 托管可通过 VPN 访问并受 HTTPS 保护的内部 S3 网站
- python - mongodb – SSJI 到 RCE