2017-03-08 4 views
-1

Ich möchte die primäre ID vom Client Tisch zu bekommen, aber ich kann es nicht bekommen ..Insert PDO mit Primärschlüssel

Hier ist meine Quellcode

if ($valid) { 
     $pdo = Database::connect(); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $sql = "INSERT INTO client (client_name,client_owner,client_contact) values(?, ?, ?)"; 
     $q = $pdo->prepare($sql); 
     $q->execute(array($client_name,$client_owner,$client_contact)); 
     // for teamviewer 
     $sql1 = "SELECT client_id TOP 1 FROM client ORDER BY client_id desc"; 
     $sql2 = "INSERT INTO teamviewer (client_id,tv1,tv2,tv3) values(?, ?, ?, ?)"; 
     $q1 = $pdo->prepare($sql2); 
     $q1->execute(array($sql1,$teamviewerstore,$teamviewerserver,$teamviewerbackoffice)); 
     Database::disconnect(); 
     header("location: index.php"); 
    } 

Ich benutze diese Auswahlabfrage holen Sie sich die Top-1 von Client-ID

$sql1 = "SELECT client_id TOP 1 FROM client ORDER BY client_id desc"; 

erstellt werden soll ich die $ sql1 auf diese Abfrage

$sql2 = "INSERT INTO teamviewer (client_id,tv1,tv2,tv3) values(?, ?, ?, ?)"; 
    $q1 = $pdo->prepare($sql2); 
    $q1->execute(array($sql1,$teamviewerstore,$teamviewerserver,$teamviewerbackoffice)); 
einfügen möchten

Jede Art von Anregung ist viel

geschätzt Danke

+0

Von dem, was verwenden kann ich Sehen Sie, Sie erhalten nicht das Ergebnis von '$ sql1', stattdessen fügen Sie einfach die Zeichenfolge als Wert in' $ sql2' ein. – Swellar

+0

Ja, aber Sie tun Ich führe die Abfrage, die Sie verwenden, um die Client-ID zu erhalten, nicht aus !!!!!!! – RiggsFolly

+0

was soll ich tun? – mberica

Antwort

0
diesen

Versuchen

$sql1 = "SELECT client_id FROM client ORDER BY client_id desc LIMIT 1"; 
$clientID = $pdo -> prepare($sql1); 
$clientID -> execute(); 
$result = $clientID -> fetch(); 
$id = $result['client_id']; 

dann die $id zum $sql2 als Wert an die Säule client_id

+0

Ich habe nicht überprüft, ob das Ergebnis etwas zurückgegeben hat. Und Sie könnten bemerken, dass ich 'Prepare()' verwendet habe, obwohl es nichts zu bereiten gibt, keine Sorge, es ist nur eine Angewohnheit von mir – Swellar

+0

Danke .. aber ich habe einen Fehler in der Zeile mit $ clientID -> ausführen(); – mberica

+0

Welcher Fehler? Basierend auf einem Kommentar in Ihrem Beitrag, 'TOP 1' funktioniert nicht mit' mysql', verwenden Sie 'LIMIT 1' statt – Swellar

Verwandte Themen