-1

患者レコードとその患者 ID に関連付けられた予約を同時に削除しようとしていますが、どちらも機能していません。どこが間違っているのか教えてください。

私のコードは次のとおりです。

<?php
include("includes/staffmenu.php");
include("includes/staffsession.php");
@require_once("includes/dbconfig.inc");

$patid = $_GET['patid'];

$patientname = mysql_query("SELECT * From patient WHERE Patient_ID=$patid");
    while($row = mysql_fetch_array($patientname))
        {   $pfname=$row['Patient_First_Name'];
            $pmname=$row['Patient_Middle_Name'];
            $psname=$row['Patient_Surname'];
        }

  echo "<h1>Success $pfname $pmname $psname (Patient ID: $patid) has been removed from our database, along with any appointments in their name</h1>";

    mysql_query("DELETE FROM appointment, patient 
    USING patient INNER JOIN appointment ON (patient.Patient_ID = appointment.Patient_ID) 
    WHERE patient.Patient_ID='$patid'");

  ?>

患者IDの名前がうまくエコーするので、間違いなく患者IDを取得します...

4

1 に答える 1

1
DELETE patients, appointments FROM patients
LEFT JOIN appointments USING(Patient_ID)
WHERE Patient_ID = 1

ref http://dev.mysql.com/doc/refman/5.5/en/delete.html

ps。GET から直接値を使用して SQL インジェクションを開始しているため、params を使用して patid を渡すことを検討してください。

http://php.net/manual/en/mysqli-stmt.bind-param.php

pps。その時点で実際に削除していないため、エコーを最後に配置する必要もあります:)

于 2013-03-17T18:52:11.637 に答える