Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从php分配客户id_Php_Mysql_Sql - Fatal编程技术网

如何从php分配客户id

如何从php分配客户id,php,mysql,sql,Php,Mysql,Sql,我正试图向数据库发送订单。我为客户创建了一个表单来填写他的详细信息,然后在提交时,我有一个查询,将客户的详细信息发送到数据库。我还有另一个查询,它将购物车中的项目发送到链接表中。链接表将客户与产品链接起来 问题是在我的第二个查询中,我无法使用客户id引用该客户,因为该客户尚未在系统中存储。客户id随订单在msql中自动创建 看看如何做到这一点。您希望使用mysqli\u insert\u id(或其面向对象的对应项)获取数据库中最后一个插入的id(如果数据库使用的是自动递增键),并在第二次查询

我正试图向数据库发送订单。我为客户创建了一个表单来填写他的详细信息,然后在提交时,我有一个查询,将客户的详细信息发送到数据库。我还有另一个查询,它将购物车中的项目发送到链接表中。链接表将客户与产品链接起来


问题是在我的第二个查询中,我无法使用客户id引用该客户,因为该客户尚未在系统中存储。客户id随订单在msql中自动创建

看看如何做到这一点。您希望使用
mysqli\u insert\u id
(或其面向对象的对应项)获取数据库中最后一个插入的id(如果数据库使用的是自动递增键),并在第二次查询中使用该id

请查看此示例:

<?php

$order_item = 'test_item';

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "INSERT INTO customers VALUES (NULL, 'first_name', 'last_name')";
$mysqli->query($query);

$newid = $mysqli->insert_id;

printf ("New Record has id %d.\n", $newid);


if ($stmt = $mysqli->prepare("INSERT INTO orders VALUES (NULL, ?, ?)")) {
    /* bind parameters for markers */
    $stmt->bind_param("is", $newid, $order_item);

    /* execute query */
    $stmt->execute();
}

/* close connection */
$mysqli->close();
?>

如果我理解正确,我认为有一个解决方案。如果你能在问题的同时发布一些代码,那就更好了

可以使用以下命令检测发送到第二个表的最新查询

SELECT `customer_id` from `orders` order by DESC limit 1; 
然后,您应该能够使用php to+1来检索以下内容:

$newid = $mostrecentid + 1;
这将为您提供可用于第二次查询的最新id