gpt4 book ai didi

javascript - mysqli_fetch_assoc() 最奇怪的错误

转载 作者:行者123 更新时间:2023-12-03 05:50:12 24 4
gpt4 key购买 nike

我陷入了这个 mysqli_fetch_assoc() 错误,它让我发疯。问题是我试图检查数据库中是否存在与整数 ID 匹配的行。如果存在,则应删除该记录,否则,应显示未找到记录的警告。问题是它显示未找到记录的警告,但同时它从数据库中删除了该行。我直接在表中仔细检查了数百次并且记录存在。我尝试使用 pdo 而不是 mysqli 来完成此操作,但我得到了同样的结果。

$id = intval($_GET['id']);
$qp = $dbh->query("SELECT * FROM Pictures WHERE ID = " . $id) or die ('SQL error on line ' . __LINE__ . ' in ' . __FILE__);
$rp = $qp->fetch_assoc();
if (is_null($rp)) {
display_alert('danger', 'Photo not found!');
} else {
$horse = get_horse_info($rp['HorseID']);
if (is_null($horse)) {
display_alert('danger', 'Horse not found!');
} else {
$ownership = is_owner($horse['ID'], $user['ID']);
if ($ownership < 1) {
display_alert('danger', 'Permission denied! Only horse owners can delete photos!');
} else {
if (file_exists(ABS_PATH . '/upload/' . $rp['Image'])) {
@unlink(ABS_PATH . '/upload/' . $rp['Image']);
}
$dbh->query("DELETE FROM Pictures WHERE ID = " . $rp['ID']) or die ('SQL error on line ' . __LINE__ . ' in ' . __FILE__);
display_alert('success', 'Success: photo deleted!');
redirect_page('/?path=horses&action=display&id=' . $horse['ID'], 2);
}
}
}

OR(首先计算行数)

$id = intval($_GET['id']);
$qp = $dbh->query("SELECT * FROM Pictures WHERE ID = " . $id) or die ('SQL error on line ' . __LINE__ . ' in ' . __FILE__);
$cp = $qp->num_rows;
if ($cp == 0) {
display_alert('danger', 'Photo not found!');
} else {
$rp = $qp->fetch_assoc();
$horse = get_horse_info($rp['HorseID']);
if (is_null($horse)) {
display_alert('danger', 'Horse not found!');
} else {
$ownership = is_owner($horse['ID'], $user['ID']);
if ($ownership < 1) {
display_alert('danger', 'Permission denied! Only horse owners can delete photos!');
} else {
if (file_exists(ABS_PATH . '/upload/' . $rp['Image'])) {
@unlink(ABS_PATH . '/upload/' . $rp['Image']);
}
$dbh->query("DELETE FROM Pictures WHERE ID = " . $rp['ID']) or die ('SQL error on line ' . __LINE__ . ' in ' . __FILE__);
display_alert('success', 'Success: photo deleted!');
redirect_page('/?path=horses&action=display&id=' . $horse['ID'], 2);
}
}
}

他们都在做同样的事情:删除记录但显示警报(显示“未找到照片”)

请帮忙,这让我发疯,我无法专注于其他事情。我被这个问题困住了。上百种啤酒正向你袭来!干杯!

P.S.:我通常使用 mysqli,但这次我尝试了 PDO,令人沮丧的事情也发生在 PDO 上。

$id = intval($_GET['id']);
$qp = $pdo->prepare("SELECT * FROM Pictures WHERE ID = " . $id);
$qp->execute();
$rp = $qp->fetch(PDO::FETCH_ASSOC);
if (is_null($rp)) {
display_alert('danger', 'Photo not found!');
} else {
$horse = get_horse_info($rp['HorseID']);
if (is_null($horse)) {
display_alert('danger', 'Horse not found!');
} else {
$ownership = is_owner($horse['ID'], $user['ID']);
if ($ownership < 1) {
display_alert('danger', 'Permission denied! Only horse owners can delete photos!');
} else {
if (file_exists(ABS_PATH . '/upload/' . $rp['Image'])) {
@unlink(ABS_PATH . '/upload/' . $rp['Image']);
}
$del->prepare("DELETE FROM Pictures WHERE ID = " . $rp['ID']);
$del->execute();
display_alert('success', 'Success: photo deleted!');
redirect_page('/?path=horses&action=display&id=' . $horse['ID'], 2);
}
}
}

最佳答案

最可能的原因是双重 HTTP 请求(您以某种方式发送了两个 HTTP 请求,而不是一个)。检查服务器日志,您可能会发现两个表单提交条目。

这可能是 JavaScript 中的错误,甚至鼠标发送的是双击而不是单击,或者只是双击。

所以你应该防止双击。引用this例如,发布。

关于javascript - mysqli_fetch_assoc() 最奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40187923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com