我正在插入多个表,需要从上一次插入表1中获取ID,并将其用作表2插入中的变量。
ID是自动递增的。
在表单中单击“提交”按钮后,将运行查询。
查询的:
$sql = "INSERT INTO table1 (Text) VALUES ($T1text);";
$sql = "INSERT INTO table2 (table1ID,Text) VALUES ($table1id, $T2text);";
table1 {id,Text}
table2 {id,table1.id,Text}
有一个PHP函数(不推荐使用,在7.0中删除!)或相应的mysql / mysqli / pdo函数。
解决方案
PHP(已弃用)
例子
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());
资料来源:http : //php.net/manual/en/function.mysql-insert-id.php
Mysql / Mysqli / PDO
Mysqli $ sql =“将MyGuests(名字,姓氏,电子邮件)插入VALUES('John','Doe','[email protected]')”;
if (mysqli_query($conn, $sql)) {
$last_id = mysqli_insert_id($conn);
echo "New record created successfully. Last inserted ID is: " . $last_id;
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
PDO
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', '[email protected]')";
// use exec() because no results are returned
$conn->exec($sql);
$last_id = $conn->lastInsertId();
资料来源:http : //www.w3schools.com/php/php_mysql_insert_lastid.asp
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句