2014-02-06 5 views
1

Я думаю, что это связано с PDO.
Как вставить данные в вложенные таблицы через PHP?

это мой patientinfo стол

patientid | name | age | email | address 

и это мои замечания таблицы

patientid | remarksid | date | description 

Я хотел бы вставить данные в patientinfo и к столу, где замечания patientid обеих таблиц будут синхронизированы.

Проблема в том, что я не знаю, как запросить это. Это то, что я делаю, но это дает мне ошибку.

$query = "INSERT INTO patientinfo (name, age, email, address) 
       VALUES (:name, :age, :email, :address);"; 

    $query_params = array(
      ':name'  => $_POST['name'], 
      ':age'  => $_POST['age'], 
      ':email' => $_POST['email'], 
      ':address' => $_POST['address'], 
    ); 

    $query = "INSERT INTO remarks (patient_id, description) VALUES (:patient_id, :remarks) WHERE remarks.patient_id = patientinfo.patient_id;"; 
    $query_params = array(':remarks' => $_POST['remarks']); 

    try{ 
     $stmt = $dbname->prepare($query); 
     $result = $stmt->execute($query_params); 
    } 

    catch(PDOException $ex){ 
      $response["success"] = 0; 
      $response["message"] = $ex ; 

      die(json_encode($response)); 
    } 

я сделал patientid в patientinfo Autoincrement. ПОЖАЛУЙСТА! БОЛЬШОЕ ВАМ СПАСИБО ЗА ВАШУ ПОМОЩЬ!

+3

Пожалуйста, не путайте PHPMyAdmin и MySQL. – Quentin

+0

Вы пытаетесь ввести данные INSERT или SELECT или оба? – Armin

+0

оба, я хотел бы данные INSERT для этих таблиц и в то же время ВЫБРАТЬ терпеливый пациент из patientinfo и ВСТАВИТЬ его к терпеливому замечанию. :) – superJen

ответ

1
$query = "INSERT INTO patientinfo (name, age, email, address) 
       VALUES (:name, :age, :email, :address);"; 

$query_params = array(
     ':name'  => $_POST['name'], 
     ':age'  => $_POST['age'], 
     ':email' => $_POST['email'], 
     ':address' => $_POST['address'], 
); 

try{ 
    $stmt = $dbname->prepare($query); 
    $stmt->execute($query_params); 

    $patient_id = $dbname->lastInsertId(); 

    $query = "INSERT INTO remarks (patientid, description) VALUES (:patient_id, :remarks)"; 
    $query_params = array(':remarks' => $_POST['remarks'],':patient_id'=>$patient_id); 

    $q = $dbname->prepare($query); 
    $q->execute($query_params); 

}catch(PDOException $ex){ 
     $response["success"] = 0; 
     $response["message"] = $ex ; 

     die(json_encode($response)); 
} 

Вы должны написать что-то подобное. Проверьте имена столбцов, пожалуйста (patientid или patient_id?)

+0

ЭТО РАБОТАЕТ! Огромное спасибо! :)) – superJen

+1

Добро пожаловать :) –

Смежные вопросы