2017-03-08 91 views
-1

我想從客戶表中的主ID,但我無法得到它..插入PDO與主鍵

這裏是我的源代碼

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"); 
    } 

我用這個選擇查詢獲得最高1,從客戶端ID將被創建

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

我想將$ SQL1這個查詢

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

任何一種建議都非常讚賞

謝謝

+0

從我可以看,你沒有檢索'$ sql1'的結果,而只是將該字符串作爲值插入'$ sql2' – Swellar

+0

是的,但你做nt實際執行您正在使用的查詢來獲取客戶端ID !!!!!!! – RiggsFolly

+0

我該怎麼辦? – mberica

回答

0

試試這個

$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']; 

然後用$id$sql2作爲一個值client_id

+0

我沒有打擾檢查結果是否返回了某些內容。你可能注意到我使用了'prepare()',儘管沒有什麼可以準備的,別擔心,這只是我的一個習慣 – Swellar

+0

謝謝..但是我在$ clientID - > execute (); – mberica

+0

什麼錯誤?根據你的文章中的評論,'TOP 1'不適用於'mysql',使用'LIMIT 1'而不是 – Swellar