有人可以确保我这样做吗?
我不是最好的功能。
function checkMaintenance {
$db = doDB();
$sql = "SELECT * FROM Maintenance WHERE Enabled = 1";
$stmt = $db->query($sql);
$msg = "";
if ($stmt->num_rows > 1) {
while ($rows = $stmt->fetch_assoc()) {
$msg = "<div class="alert alert-danger" role="alert"><strong>Ruff oh!</strong> '".$rows['Message']."' ?></div>";
return $msg;
}
} else {
$msg = "";
return $msg;
}
return $msg;
}
?>
答案 0 :(得分:2)
我猜函数应该是这样的:
function checkMaintenance() {
$db = doDB();
$sql = "SELECT * FROM Maintenance WHERE Enabled = 1";
$stmt = $db->query($sql);
$msg = "";
if ($stmt->num_rows > 0) {
while ($rows = $stmt->fetch_assoc()) {
$msg = "<div class='alert alert-danger' role='alert'><strong>Ruff oh!</strong>" . $rows['Message'] . "</div>";
return $msg;
}
}
return $msg;
}
并将其命名为
<?= checkMaintenance() ?>
或<?php echo checkMaintenance() ?>
答案 1 :(得分:1)
替换行:
if ($stmt->num_rows > 1) {
有了这个:
if ($stmt->num_rows > 0) {
语法错误
$msg = ".............. .$rows['Message']."' ?></div>";
替换为
$msg = '<div class="alert alert-danger" role="alert"><strong>Ruff oh!</strong>' . $rows['Message']. '</div>';
答案 2 :(得分:0)
遵循以下几点:
1)首先检查$stmt
是否返回数据。
2)将if ($stmt->num_rows > 1) {
替换为if ($stmt->num_rows > 0) {
。
3)替换
$msg = "<div class="alert alert-danger" role="alert"><strong>Ruff oh!</strong> '".$rows['Message']."' ?></div>";
带
$msg = "<div class='alert alert-danger' role='alert'><strong>Ruff oh!</strong> ".$rows['Message']."</div>";
4)调用<?php echo checkMaintenance() ?>
等函数。
答案 3 :(得分:0)
您需要进行两次更正:
变化:
$msg = "<div class="alert alert-danger" role="alert"><strong>Ruff oh!</strong> '".$rows['Message']."' ?></div>";
要:
$msg = '<div class="alert alert-danger" role="alert"><strong>Ruff oh!</strong>' . $rows['Message']. '</div>';
你在这里混用双引号,导致解析错误。您可以互换使用单引号和双引号,但不应混淆它们。
应正确关闭它们。
和
if ($stmt->num_rows > 1) {
要
if ($stmt->num_rows > 0) {
您正在检查结果集是否包含至少2行(> 1)
,即
不正确,有时候,如果你有一行,它就不会认为它显示错误的结果。
因此,检查结果集是否至少有一行。 (> 0)
答案 4 :(得分:0)
试试这个:
NONE
我做了一些需要修理的东西。如果 MySql 结果集具有至少单个记录,则应返回 HTML 结构。
希望这对你有所帮助。