2016-06-01 19 views
-4

Ich habe eine Tabelle und eine der Spalten sollte eine Schaltfläche namens löschen haben. Ich habe jedoch verschiedene Codebeispiele ausprobiert, aber die Schaltfläche zum Löschen funktioniert immer noch nicht.Mysql Zeile aus der Tabelle mit löschen löschen

Dieser Code zeigt die Löschtaste und es funktioniert wirklich gut:

echo '<td><a class="btn btn-default" href="delete.php?courseId='.$row['courseId'].'">Delete</a></td>'; 

und der nächste Code ist mein delete-Code:

<?php include("dbconnect.php"); 
$courseId =$_GET['courseId']; 
$pdo = Database::connect(); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $sql = "DELETE FROM course WHERE courseId= $courseId"; 

     $q = $pdo->prepare($sql); 
     $q->execute(array($courseId,$courseName,$desc)); 
     Database::disconnect(); 
     header("Location: courseList.php");  
?> 

Vielen Dank im Voraus ~

+2

SQL-Injection-Schwachstelle ... * Check *. Mit 'GET' löschen Sie die Dinge ... * check *. Siehe: http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php und http://stackoverflow.com/questions/46585/when-do-you-use-use- post-and-when-do-you-use-get – Mike

+0

Nicht nur sind Sie anfällig für SQL-Injektion, aber Ihre href ist völlig falsch. Sie sollten einen Blick darauf werfen, wie Formulare in PHP richtig gehandhabt werden. – GaijinJim

Antwort

3
echo '<td><a class="btn btn-default" href="delete.php?courseId='.$row['courseId'].'">Delete</a></td>'; 

fehlt eine ?, die den Start der Abfrageparameter angibt.

-1

Sie waren in der Nähe

<?php include("dbconnect.php"); 
$courseId =$_GET['courseId']; 
$pdo = Database::connect(); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $sql = "DELETE FROM course WHERE courseId= :courseId"; 

     $q = $pdo->prepare($sql); 
     $q->execute(array(':courseId'=>$courseId)); 
     Database::disconnect(); 
     header("Location: courseList.php");  
?> 
+0

Ihre Lösung funktioniert, aber anstatt nur eine Zeile zu löschen, löscht sie alle Zeilen. Weißt du, wie man nur eine Zeile löscht? Danke! :) – Panshi

+0

es wird jede Zeile löschen, die dieselbe courseId hat, wenn Sie nur eine Zeile löschen müssen, müssen Sie die primäre ID (unique) Ihrer Zeile übergeben. –

Verwandte Themen