【发布时间】:2015-01-13 02:47:57
【问题描述】:
我正在尝试删除我的一个文件中的冗余。我有 30 到 40 个查询——2 种不同类型——根据日期运行。我试图通过将它们放在一个函数中并根据日期调用该函数来避免重复相同的(2 个不同的)查询字符串。它似乎没有像我预期/希望的那样工作。我是 PHP 新手,也许我忽略了一些东西或者不明白 PHP 函数是如何工作的。
这里是代码示例:
function queryONE() {
$stmt = $pdo->query("SELECT `rand` FROM `setGallery` WHERE `$category` = '$dayList' ORDER BY RAND() LIMIT $limit");
$fh = fopen("galleryRand_PDO.txt", "w");
while ($row = $stmt->fetchObject()) {
fwrite($fh, $row->rand);
}
fclose($fh);
exit();
}
function queryTWO() {
$stmt = $pdo->query("(SELECT `rand` FROM `jukebox2014` WHERE `$category` = '$dayList' ORDER BY RAND() LIMIT $limit) ORDER BY `rand` DESC";
$fh = fopen("galleryRand_PDO.txt", "w");
while ($row = $stmt->fetchObject()) {
fwrite($fh, $row->rand);
}
fclose($fh);
exit();
}
if ($date == Jun 13)
{
$category = "galleryDir";
$dayList = "Grids";
queryONE();
}
if ($date == Nov 16) {
$category = "class";
$dayList = "Grids";
queryTWO();
}
注意:如果我放一个 --- echo "Hello world!" --- 在它显示的函数中声明;所以 if() 语句触发了函数,但函数没有运行 query,但 fopen 代码确实创建了预期的文本文件。
显然还有很多 if() 语句,否则我不会打扰。任何想法为什么这不起作用?
谢谢。
【问题讨论】:
-
请正确格式化您的代码
-
启用正确的error reporting;阅读variable scope。
-
你怎么知道查询没有运行?你到底什么意思?结果集是否为空?
-
我认为它是空的,因为没有任何内容输出到文本文件。当我在函数之外运行任何一个查询时,都会填充文本文件——所以我知道查询代码正在工作。