0
美好的一天每个人。 我完全需要你的帮助。我对oop & pdo相当陌生,而且我的删除功能有问题。只要点击删除按钮,该项目就不会被删除。看来我不能称之为ID。我只是不知道该怎么做。请帮我解决这个问题。删除PDO OOP问题
这是我的代码。 对于类(CODEX):
public function deleteData($id,$table)
{
$q = "DELETE FROM $table WHERE id = :id";
$stmt = $this->con->prepare($q);
$stmt->execute(array(':id'=>$id));
}
对于UI和网页,我叫ID:
<?php
include_once "../styles/header-menu-out.php";
include_once "dbconnection.php";
function __autoload($class){
include_once("../main/".$class.".php");}
$code = new codex("localhost","library_books","root","");
$books = $code->showData("book_info");
if(isset($_REQUEST['id'])){
if($code->deleteData($_REQUEST['id'],"book_info")){
echo "<script type='text/javascript'>
alert('Book Information have been deleted.');
window.location='bookDeleteUI.php';
</script>";
}}
?>
<html>
<head><link rel="stylesheet" type="text/css" href="../styles/library_style.css"></head>
<title>Book-A-Holic: Delete & Update Books</title>
<body><br /><center>
<div id="content"><div class="echoname"><br/><br/><b><h2>Book Settings</h2></b><br/></div>
<table id="tablecolor" class="echoname" border="1">
<td>ID</td>
<td>Title</td>
<td>Author</td>
<td>ISBN</td>
<td>Publisher</td>
<td>Language</td>
<td>Genre</td>
<td>Quantity</td>
<td>Availability</td>
<td>Queue</td>
<td><center>Settings</center></td>
<?php
echo "<pre>";
foreach ($books as $book)
{
echo "<tr>";
extract($book);
echo "<td>".$id."</td>";
echo "<td>".$title."</td>";
echo "<td>".$author."</td>";
echo "<td>".$isbn."</td>";
echo "<td>".$publisher."</td>";
echo "<td>".$language."</td>";
echo "<td>".$genre."</td>";
echo "<td>".$quantity."</td>";
echo "<td>".$availability."</td>";
echo "<td>".$queue."</td>";
?>
<td><button class="btn"><a href="bookUpdateUI.php?update=$id" >Edit</a></button>
<button class="btn"><a href="bookDeleteUI.php?id=$id">Delete</a></button></td>
<?php echo "</td>";
}
echo "</pre>";
?>
</table><br />
</div></center>
</body>
</hmtl>
<?php include_once "../styles/footer-admin.php"; ?>
谢谢麦克罗德先生!它工作,但什么是urlencode,它有什么用?顺便说一句,如果你不介意回答另一个问题..为什么我的JavaScript不工作(“书已被删除”提示)? .. – user12345654
'urlencode'用于转义字符,以便它们可以安全地用于'$ _GET'查询中,例如, '&'变成'%26',这样你就不会无意中开始一个新的'key = value'参数(参见http://php.net/urlencode)。你在'deleteData'函数中缺少返回语句。你需要'返回true;'如果记录被删除或'返回false;'如果失败。 –
感谢您的帮助和演讲。感谢一切先生。 – user12345654