2017-03-08 89 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