PHP と MySQL を使用するプロジェクトに取り組んでいます。
MySQL の「タスク」テーブルからデータをロードする 3 つの列を持つ HTML テーブルがあります。列は次のとおりです: id
、taskname
およびクリックすると関連するタスクのページに移動するボタン列Edit
(タスク ID を URL として渡します) -http://localhost/tasks/?edit&id=3
このタスクに関する詳細をロードしようとすると、問題が発生します。これはコードです:
if(isset($_GET["id"]))
{
try
{
$sql = "SELECT * FROM tasks WHERE id = :id";
$result = $pdo->prepare($sql);
$result->bindValue(":id", $_GET["id"]);
$result = $pdo->query($sql);
}
catch(PDOException $e)
{
$error = "Error trying to load task - " . $e->getMessage();
include "error.php";
exit();
}
foreach($result as $task)
{
$tasktext = $task["task"];
$id = $task["id"];
}
$title = "Edit task";
$action = "edittask";
$button = "Edit task";
include 'form.php';
exit();
resetParameters();
次のエラーが表示されます。
Error trying to load task - 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 ':id' at line 1
たとえば、を置き換えるWHERE id = :id
とWHERE id = 3
、タスクに関する詳細が機能してロードされますが、前の画面でクリックしたタスクに関する詳細をロードすることはできません。
誰かが私のコード/ロジックの問題を見つけて、正しい方向に向けてくれませんか?