当新客户购买产品时,我想将客户端详细信息存储在clients表中,并将相应的client_ID存储在orders表中.
订单表:
order_ID product client
============================
1501 bag 1
1502 shoe 2
Run Code Online (Sandbox Code Playgroud)
客户表:
client_ID name
=================
1 Frank
2 John
Run Code Online (Sandbox Code Playgroud)
我找到了一个有效的解决方案,但我觉得,这不是最聪明的解决方案.
$sql = "INSERT INTO clients(name) VALUES(?)";
$q = $con->prepare($sql);
$q->execute(array($name));
$sql = "INSERT INTO orders(product) VALUES(?)";
$q = $con->prepare($sql);
$q->execute(array($product));
$sql = 'SELECT * FROM clients ORDER BY client_ID DESC LIMIT 0, 1';
foreach ($con->query($sql) as $row) {
$client = $row['client'];
$sql = "UPDATE orders SET client = '$client' WHERE client IS NULL";
$query = $con->prepare($sql);
$query->execute();
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,有更好的方法吗?(备注:client_ID为AUTO_INCREMENT)
小智 6
获取插入数据库的最后一个id:
$sql = "INSERT INTO clients(name) VALUES(?)";
$q = $con->prepare($sql);
$q->execute(array($name));
// Assuming you use PDO:
$clientId = $con->lastInsertId();
// For mysqli this would be:
// $clientId = $con->insert_id;
$sql = "INSERT INTO orders(product, client) VALUES(?, ?)";
$q = $con->prepare($sql);
$q->execute(array($product, $clientID));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |