使用PHP从表中删除时出现mySQL错误
我的PHP中的mySQL有一个问题,每次我尝试删除表中的一个条目时,它都会删除,但会输出一个错误。错误如下: 警告:mysqli_query()[function.mysqli query]:无法获取mysqli 警告:mysqli_num_rows()要求参数1为mysqli_结果, 空给定 警告:mysqli_close()[function.mysqli close]:无法获取mysqli 我似乎不明白为什么会发生这种情况,这可能很简单,但我对mySQL还比较陌生,所以希望有更高级的人能告诉我哪里出了问题使用PHP从表中删除时出现mySQL错误,php,mysql,mysqli,Php,Mysql,Mysqli,我的PHP中的mySQL有一个问题,每次我尝试删除表中的一个条目时,它都会删除,但会输出一个错误。错误如下: 警告:mysqli_query()[function.mysqli query]:无法获取mysqli 警告:mysqli_num_rows()要求参数1为mysqli_结果, 空给定 警告:mysqli_close()[function.mysqli close]:无法获取mysqli 我似乎不明白为什么会发生这种情况,这可能很简单,但我对mySQL还比较陌生,所以希望有更高级的人能告
<?
if(isset($_GET['deleteTweet'])) {
$deleteTweet = $_GET['deleteTweet'];
$sql = "DELETE FROM bestTweets WHERE id=".$deleteTweet;
if (mysqli_query($conn, $sql)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . mysqli_error($conn);
}
mysqli_close($conn);
}
$sql = "SELECT id, tName, tUsername, tTimeDate, tBody FROM bestTweets";
$result = mysqli_query($conn, $sql);
$onMouseOver = 'onmouseover="this.src='."'IMAGES/binBtn_Hover.svg'".'" ';
$onMouseOut = 'onmouseout="this.src='."'IMAGES/binBtn.svg'".'"';
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo
'<div id="tweetContainer" class="tweetContainer">
<div id="tweetMain">
<div id="tweetName">
<p>'.$row['tName'].'</p>
</div>'.
'<div id="tweetUsername">
<p>'.$row['tUsername'].'</p>
</div>'.
'<div id="tweetDateTime">
<p>' .$row['tTimeDate'].'</p>
</div>'.
'<div id="tweetBody">
<p>'.$row["tBody"].'</p>
</div>
<div id="tweetSave">
<form action="Saved.php?isset=true&deleteTweet='.$row["id"].'" method="post">
<button type="submit" name="binBtn1" class="saveBtn"><img src="IMAGES/binBtn.svg"'.$onMouseOver.$onMouseOut.' width="50px" height="50px"></button>
</form>
</div>
</div>
</div>';}
}
else {
echo "0 results";
}
mysqli_close($conn);
?>
如果删除一行,最后要做的就是关闭连接 改成
<?
if(isset($_GET['deleteTweet'])) {
$deleteTweet = $_GET['deleteTweet'];
$sql = "DELETE FROM bestTweets WHERE id=".$deleteTweet;
if (mysqli_query($conn, $sql)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . mysqli_error($conn);
}
//mysqli_close($conn);
}
两条建议:
检查您是否已成功建立连接(因为我在您的代码中找不到$con
)
确保没有过早关闭连接李>
您是否将$conn
定义为连接?你为什么要关闭mysqli_($conn)
在完成查询之前?您的代码易受SQL注入攻击,您应该将mysqli与一起使用。此外,他应该检查$conn
是否为mysqli连接。如果打开连接失败,IIRCmysqli_open(…)
将返回NULL
。我做了很多假设-连接可以用于删除,因此是可以的,OP将在某个时候更改为使用准备好的语句。但就目前而言,这至少应该表明问题所在。确实,有改进的余地,但你的答案指向了主要问题。