Php 插入带有主键的PDO
我想从客户机表中获取主id,但无法获取 这是我的源代码Php 插入带有主键的PDO,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我想从客户机表中获取主id,但无法获取 这是我的源代码 if ($valid) { $pdo = Database::connect(); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "INSERT INTO client (client_name,client_owner,client_contact) values(?, ?, ?)"
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");
}
我使用此select查询从将创建的客户端id中获取前1名
$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));
非常感谢您的任何建议
谢谢试试这个
$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
作为客户机id
列的值,从我所看到的,您不是从$sql1
中检索结果,而是将字符串作为值插入到$sql2
中是的,但实际上并没有执行用于获取客户机id的查询!!!!!!!我该怎么办?我建议你看起来比你没有运行的查询更简单抱歉,我只是刚接触php..我没有检查结果是否返回了什么。你可能会注意到,我使用了prepare()
,尽管没有什么需要准备的,但别担心,这只是我的一个习惯谢谢。。但是我在$clientID->execute()行中遇到了一个错误;什么错误?根据您帖子中的评论,TOP 1
不适用于mysql
,请使用LIMIT 1
而不是代替感谢先生@carl Jan它现在可以工作了。。多谢各位MUCH@Carl,您正在准备$sql1
语句,因此它正在准备一些东西