2016-03-18 2 views
2

У меня возникли проблемы с обновлением внешнего ключа, ограничение было установлено как на каскаде обновления при удалении каскада в phpmyadmin. Я могу вставить все остальное, только внешний ключ user_id отображается как null, а не обновляется до правильного идентификатора. Где моя ошибка? id идентификатор таблицы, я знаю, что мне не нужно вводить в sql-инструкцию; user_id является внешний ключ связан с tbl_userupdate sql foreign key автоматически php

Вставка кодов базы данных

try 
    { 
     $dbh = new PDO("mysql:host=localhost;dbname=$database", $username, $password); 
     $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

     $stmt =$dbh->prepare("INSERT INTO tbl_details (user_id, name,address,postcode) 
       VALUES(:user_id,:name,:address,:postcode)"); 



     $stmt->bindParam(':user_id',$user_id); 
     $stmt->bindparam(':name', $name); 
     ........ 
     $stmt->execute(); 

     $dbh = null; 
    }catch (PDOException $e) { 
      $dbh = null; 
      print "Error!: " . $e->getMessage() . "<br/>"; 
      print "PHP Line Number: " . $e->getLine() . "<br/>"; 
      print "PHP File: " . $e->getFile() . "<br/>"; 
      die(); 
     } 
+1

Где: '$ user_id' установлен? – Sean

+0

tbl_details user_id - это внешний ключ tbl_users user_id – user999

+1

Как вы устанавливаете переменную PHP '$ user_id'? –

ответ

0

Да, его работы в настоящее время, я пропускаю этот

$stmt = $auth_user->runQuery("SELECT * FROM tbl_details WHERE user_id=:user_id"); 
$stmt->execute(array(":user_id"=>$user_id)); 

Спасибо @sean и @Darwin фон Corax