我已經遵循了一些教程,在一些論壇上閱讀了很多關於delete語句以及如何在pdo php中使用它的問題。我綁定了參數,沒有綁定參數,使用了準備函數,定義了我的變量和索引。當我單擊索引頁上的刪除鏈接時,程序將重定向到刪除頁面,但不會發生錯誤,但不會從表中刪除該行。我只用兩列就使我的程序變得簡單,使其儘可能簡單。我已經使用了每個教程和我遵循的示例的確切語法,直到我耗盡三天時間。如果有人能告訴我我做得不對,我會很感激。我將從鏈接和delete.php頁面的索引頁面發佈代碼。在所有適當的尊重Fred-ii-我已閱讀所有的答案。截斷不適用於我,因爲我不想刪除一個表,只有一行。我不想刪除所有的行,所以我使用WHERE子句。與其他類似的問題不同,我沒有收到任何錯誤。我將我的代碼重新編寫爲建議的內容,但是我的刪除語法仍然不會刪除索引頁中的行。我的WHERE子句指向name_id,它是我的數據庫中的主鍵。我的delete語句在pdo php crud中怎麼不起作用
<p><td><a href="delete.php?name_id=<?php echo $row['name_id']; ?>">Delete</a></td></p>
And here is the code from the delete page.
require_once 'debase.php';
// Get the name to delete
if(isset($_GET['name_id'])){
$name_id = $_GET['name_id'];
try{
//$dns ="mysql:host=localhost;dbname=$db;charset=$charset";
$conn = new PDO($dsn,$user,$pass);
$stmt = $conn->prepare("DELETE * FROM student WHERE name_id=':name_id'");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt->bindValue(':name_id',$name_id, PDO::PARAM_STR);
$stmt->execute();
} catch (PDOException $e){
$error_message = $e->getMessage();
$conn = null;
}
}
此外,參數化查詢不需要引用參數。 – miken32
因此,如果我刪除*和引號,它應該工作? – swydell
還將'name_id =':name_id''更改爲'name_id =:name_id' – RiggsFolly