[英]Retrieving auto increment value:
我有一個表“ prac1”,其中包含列id ( primary key, auto_increment)
, Name
和Contact
。 還有另一個表“ prac2”,具有列id(foreign key)
, Order_id(primary key)
和Order_items
。
<?php
$ok=isset($_POST['ok']);
if($ok)
{
$name=$_POST['cname'];
$order=$_POST['oi'];
$contact=$_POST['contact'];
$db = new mysqli("localhost", "root", "","learndb");
$stmt=$db->prepare("INSERT INTO prac1 (Name,Contact) values (?,?)");
$stmt->bind_param("si",$name,$contact);
$stmt->execute();
$stmt=$db->prepare("INSERT INTO prac2 (Order_items) values(?) ");
$stmt->bind_param("i",$order);
$stmt->execute();
}
?>
<form action="prac.php" method="POST">
Name:<input type="text" name="cname"><br>
Contact:<input type="text" name="contact"><br>
Order Items:<input type="text" name="oi"><br>
<input type="submit" name="ok"><br>
現在,從此表單提交中,名稱和訂單項將在表prac1中插入具有自動遞增ID的表中。 我如何檢索表prac1的ID以插入prac2。 而且我想由於prac2表中的NULL id而導致兩個表未連接,並且以下代碼不顯示任何內容。
$db = new mysqli("localhost", "root", "","learndb");
$stmt=$db->prepare("SELECT * FROM prac1 INNER JOIN prac2 ON prac1.id=prac2.id ORDER BY prac2.Order_items");
$stmt->execute();
$result=$stmt->get_result();
echo "<TABLE BORDER='1'>";
echo "<tr><thead><td>ID</td><td>Order ID</td><td>Order items</td><td>Name</td><td>Contact</td><td>Status</td></thead></tr>";
while($row=$result->fetch_assoc())
{
echo "<tr>";
echo "<td>";
echo $row['id'];
echo "</td><td>";
echo $row['order_id'];
echo "</td><td>";
echo $row['Order_items'];
echo "</td><td>";
echo $row['Name'];
echo "</td><td>";
echo $row['Contact'];
echo "</td><td>";
echo $row['Status'];
echo "</td>";
echo "</tr>";
}
echo "</table>";
干得好:
<?php
if( isset($_POST['ok']) ) {
$name = $_POST['cname'];
$order = $_POST['oi'];
$contact = $_POST['contact'];
$db = new mysqli("localhost", "root", "","learndb");
$stmt=$db->prepare("INSERT INTO prac1 (Name, Contact) values (?,?)");
$stmt->bind_param("si",$name,$contact);
$stmt->execute();
//HERE YOU GET THE INSERT ID
$insertID = $db->insert_id; //THIS IS THE ID THAT YOU NEED ...
// OR IF YOU ARE INTO PROCEDURAL STYLE:
// $conn = mysqli_connect("localhost", "my_user", "my_password", "world");
// YOU CAN DO THIS:
// $insertID = mysqli_insert_id($conn)
//THE REST OF YOUR CODE
$stmt=$db->prepare("INSERT INTO prac2 (Order_items) values(?) ");
$stmt->bind_param("i", $insertID);
$stmt->execute();
}
希望這個對你有幫助...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.