Я пытаюсь использовать мою кнопку удаления, которая подключена к отдельному файлу, который удаляет данные в моей таблице в базе данных.Не может показаться, что не хватает до удаления
Я был достаточно успешным, чтобы разместить кнопку на каждой строке данных в то время как они отображаются, но я не могу получить его, чтобы удалить строку, как я получаю сообщение об ошибке:
DELETE FROM users WHERE id =
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Я считаю, что это что-то очень маленькое, может быть? Но я просто не могу понять, что.
admin.php
<?php
$servername = "localhost";
$username = "root";
$pass = "root";
$dbname = "tutor_database";
// Create connection
$conn = new mysqli($servername, $username, $pass, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, FirstName, LastName, Role, Email, Username FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>ID</th><th>First Name</th><th>Last Name</th><th>Role</th><th>Email</th><th>Username</th><th>Delete</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["id"]."</td><td>".$row["FirstName"]."</td><td>".$row["LastName"].
"</td><td>".$row["Role"]."</td><td>".$row["Email"]."</td><td>".$row["Username"]."</td></tr>";
?>
<td>
<form method="get" action="delete.php">
<input type="hidden" name="rowid" value="<?php echo $row['id']; ?>">
<input class="btn-default" type="submit" name="delete" value="Delete">
</form>
</td>
<?php
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
delete.php
<?php
$servername = 'localhost';
$username = 'root';
$pass = 'root';
$database = 'tutor_database';
try {
$conn = new PDO("mysql:host=$servername;dbname=$database", $username, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//obtain the rowid from $_GET
if(isset($_GET['id'])){
$id = ($_GET['rowid']);
}
//sql to delete record.
$sql = "DELETE FROM users WHERE id = ". $id;
$conn->exec($sql);
echo "Record deleted!";
require 'adminPage.php';
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
бы оценить некоторые новые пары глаз на это.
спасибо.
sidenote: можете ли вы рассказать нам, почему вы используете mysqli_ в одном коде, а затем переходите к PDO в другом? –
как это заполняется? '$ _GET ['id']' - http://php.net/manual/en/function.error-reporting.php –
Я пробовал подход PDO к отображению данных, но не мог понять, как разместить рядом с ним, которая удалит каждую отображаемую запись. Поэтому я пошел так, как только почувствовал, что мне стало легче понять - все еще нова к этому. –