【问题标题】:How do i insert the value of the primary key into a insert query如何将主键的值插入到插入查询中
【发布时间】:2019-11-16 19:25:57
【问题描述】:

如何检索 customer_information 表中的主键值,以便将值输入到 INSERT 语句中以将数据存储到 customer_payment_information 表中?

我想调用主键的值并将其存储在一个变量中,这样我就可以将变量输入到我的 INSERT 语句中来存储我的 customer_payment_information 表的数据。

很遗憾,我的数据库中没有存储任何内容。

这是我的代码:

$sql = "SELECT customer_id FROM customer_information ORDER BY customer_id DESC LIMIT 1";
if ($conn->query($sql)){
    $compile = $conn->prepare("INSERT INTO customer_payment_information (customer_id, fullName, creditcardNumber, expiry, ccv) VALUES (?, ?, ?, ?, ?)");            
    $compile->bind_param("issss", $sql, $ccname, $ccnumber, $expdate, $ccvnumber);
    $compile->execute();
    $compile->close();
    $conn->close();
} else {
    $errorMsg = "Connection failed: " . $conn->connect_error;
}

TABLE 1 的主键有 auto_increment,因此是 SQL 查询

“SELECT customer_id FROM customer_information ORDER BY customer_id DESC LIMIT 1”

表 1: TABLE 1 FORMAT

表 2:TABLE 2 FORMAT

【问题讨论】:

  • 这是一个实时站点吗?您似乎正在存储重要的信用卡信息。
  • 您似乎没有执行 SELECT 查询。你检查过错误吗?
  • 不,它不是一个实时站点,而且我已经加密了信息,所以存储在数据库中的信用卡详细信息被加密了。
  • 执行第一个查询,得到结果然后绑定到第二个查询
  • 对不起,我已经更新了代码。但是我的表 2 没有存储任何数据。

标签: php mysql


【解决方案1】:

您需要执行初始选择语句并获得结果。像这样的东西应该为你做。

$sql = "SELECT customer_id FROM customer_information ORDER BY customer_id DESC LIMIT 1";
$customerQuery = $conn->query($sql);
$customerResult = $customerQuery->fetch_assoc();
$customerId = $customerResult['customer_id'];

$compile
    = $conn->prepare("INSERT INTO customer_payment_information (customer_id, fullName, creditcardNumber, expiry, ccv) VALUES (?, ?, ?, ?, ?)");
$compile->bind_param("issss", $customerId, $ccname, $ccnumber, $expdate, $ccvnumber);
$compile->execute();
$compile->close();
$conn->close();

在插入记录后,您可能需要考虑SELECT LAST_INSERT_ID() 之类的东西,以获取它的 id 以供进一步使用。

【讨论】:

    猜你喜欢
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多