Php 使用ID从数据库中删除一行
我在使用MSQLI从屏幕上删除记录时遇到问题。 在这里你可以看到我正在使用的代码Php 使用ID从数据库中删除一行,php,mysqli,Php,Mysqli,我在使用MSQLI从屏幕上删除记录时遇到问题。 在这里你可以看到我正在使用的代码 <?php include_once("assets/classes/connection.php"); include_once("assets/classes/article.class.php"); while($test = $allArticles->fetch_assoc()) { if(
<?php
include_once("assets/classes/connection.php");
include_once("assets/classes/article.class.php");
while($test = $allArticles->fetch_assoc())
{
if($test['titel']=="")
{
echo "<div class='zonderfoto'>";
echo "<h5>"."geen titel hier, aparte opmaak geslaagd" . "<br /></h1>";
echo "<p>" . $test['article'] . "</p>";
echo "<input type='submit' name='verwijderee' value='verwijder'>";
echo "</div>";
}
else
{
echo "<div class='metfoto'>";
echo "<h1>".$test['titel'] . "<br /></h1>";
echo "<p>" . $test['article'] . "</p>";
echo "<form method='post' action=''>";
echo "<input type='submit' name='verwijder' value='verwijder'>";
echo "</form>";
echo "<h1>".$test['id']."</h1>";
echo "</div>";
}
}
$vArticle = new Article;
$vArticle -> Key = $test['id'];
if (isset($_POST['verwijder']))
{
$vArticle -> deleteArticle();
echo ("shit");
}
?>
编辑
键有问题,我将where语句替换为title=“”,因此我删除了数据库中的一个标题,当我单击delete then时,他删除了一行,但这不会在运行时发生。因此,我单击“删除”,删除了一行,但内容只会随着页面刷新而消失。解决方案是使用ajax?语法在您的查询中看起来不错,$query=“DELETE FROM WHERE=”$您的变量。“”;你能正确打印$this->m_sKey吗?如果您在mysqli->query()之前回显它?@user1399238不,我没有收到任何消息,我尝试在服务器上运行这一切,因为我在本地主机上没有收到任何错误。现在在线,我收到了这个错误致命错误:调用/var/www/vhosts/../httpdocs/project/saved.php中未定义的方法Article::deleteArticle(),第69行您应该总是转义放入查询中的变量,或者使用准备好的语句(您使用的是mysqli,所以我不明白为什么不使用准备好的语句)。SQL注入并不有趣。我使用了您的代码,收到的结果是,什么都没有发生,所以可能是由于de键出错?仍然容易受到SQL注入的攻击。@SarveshKumarSingh,“and”是个错误,但当我运行查询时,什么都没有发生。但这是因为键,然后我将键替换为title=”“发生了一些事情,但内容只有在页面刷新后才会消失。也许我要开始一个新的主题,因为ajax不是这个主题
public function deleteArticle()
{
include("connection.php");
$sSql = "DELETE FROM tblArticles WHERE id = '".$this->m_sKey."'";
if (!$mysqli -> query($sSql))
{
throw new Exception("Something went wrong");
}
}
public function deleteArticle()
{
include("connection.php");
$sSql = "DELETE FROM tblArticles WHERE id = '".$this->m_sKey."'";
$mysqli->query($sSql);
$aff_rows = $mysqli->affected_rows;
if ($aff_rows){
print("Affected rows (DELETE): %d\n", $aff_rows);
}
else{
print("Nothong Happend ?");
if ($err = $mysqli->error){
print("Error: %s\n", $err);
}
}
}