【发布时间】:2013-11-19 10:58:02
【问题描述】:
我正在将我的网站从使用 mysql 更改为 mysqli。到目前为止,更改非常简单,但我有一个带有 for 循环的日历页面,在切换后它不起作用。我很确定这是导致错误的循环,但我似乎找不到修复方法。
这是代码的选择,它适用于 mysql_query(我已注释掉)但不适用于 mysqli->query
<?php include("conn.php");
$today = mktime(12,0,0,date("m"),1,date("Y"));
$currentmonth = date(m, $today);
$currentyear = date(Y, $today);
$prevmonth = $currentmonth - 1;
$prevyear = $currentyear;
$prevdate = mktime(12, 0, 0, $prevmonth, 1, $prevyear);
$pdim = date("t", $prevdate);
function showMonth($month, $year, $pdims, $prevmonths, $prevyears)
{
$caldate = mktime(12, 0, 0, $month, 1, $year);
$offset = date("w", $caldate);
$pdimsplus = $pdims + 1;
$enddays = $pdimsplus - $offset;
for($i = 1; $i <= $offset; $i++)
{
$qryhead1 = "SELECT * FROM photos WHERE day(date) = $enddays AND month(date) = $prevmonths AND year(date) = $prevyears LIMIT 1";
//$res1 = $mysqli->query($qryhead1);
//$noofrec1 = $res1->num_rows;
//if ($noofrec1 > 0) {
//while ($row1 = mysqli_fetch_object($res1)) {
$res1 = mysql_query($qryhead1);
$noofrec1 = mysql_num_rows($res1);
if ($noofrec1 > 0) {
while ($row1 = mysql_fetch_object ($res1)) {
$id = $row1->id;
$image = $row1->image; ?>
<div><?php print("$enddays"); ?><a href="<?php print("$id"); ?>"><img src="/images/<?php print("$image"); ?>"></a></div>
<?php }
} else { ?>
<div><?php print("$enddays"); ?></div>
<?php }
$enddays++;
}
}
?>
<div>
<?php showMonth($currentmonth, $currentyear, $pdim, $prevmonth, $prevyear); ?>
</div>
【问题讨论】:
-
获取数组,然后尝试foreach。
-
在 include("conn.php");你创建了一个 mysqli 对象吗?
-
您是否更改了在包含文件中建立的连接?如果
mysql_query仍在工作,您可能没有使用mysqli_*进行连接 -
多调试一点总是好的。例如,在 $row1 上执行 var_dump 以查看你得到了什么。调试解决了很多问题!
-
为什么你使用
mysqli_fetch_object(程序接口的一部分)而你的其余代码似乎使用对象接口?