有无论如何获取当前记录的ID我是插入到数据库表中使用php与Mysql,而不必做额外的选择获取最后的ID?获取当前mysql插入的ID
例如,如果我的表中有这些列,ID,网址名称 如果URL由域名和电流id作为查询变量恩: domainname.com/page.php?id=current_id
有无论如何获取当前记录的ID我是插入到数据库表中使用php与Mysql,而不必做额外的选择获取最后的ID?获取当前mysql插入的ID
例如,如果我的表中有这些列,ID,网址名称 如果URL由域名和电流id作为查询变量恩: domainname.com/page.php?id=current_id
我为此使用mysql_insert_id()
。它工作正常。
// pseudo-ish code
$query = "INSERT something .... "
$updated = $db->run_query($query);
$id = mysql_insert_id();
哎呀。接得好。嘿嘿 – Kristian 2012-07-25 20:38:11
当前的ID在$_GET['id']
。将其插入到你的查询之前,您应该清理动作:
$id = intval($_GET['id']);
然后,在查询中使用$id
。
也逃脱那个网址!大声笑 – 2012-07-25 20:42:56
如果围绕第一次插入添加类,然后再添加第二次选择。选择将工作。
<?php
class insert1{
function inserthere(){
***insert***
}
}
class select1{
function selecthere(){
***select***
}
}
$a = new insert1;
$a->inserthere();
$b = new select1;
$b->selecthere();
?>
据我所知,没有“干净”的方式找到您要插入ID(从我从你的问题明白了,这是你想知道是什么)。
在我看来,从丑陋的一个开始的两个选项:select max(id) from Persons
,用一个增加它,并希望没有插入将会搞砸你。就像我说的那样,它丑陋而且不可靠。
更好的选择是首先插入带有虚拟值的记录,然后使用mysql_insert_id()
检索刚才插入的行的ID。然后用正确的url值更新该记录。
你要求一种方法来检索id没有选择查询后插入查询,但就像我说的,我不认为这是可能的。
你的表应该是这样的
ID AUTO_INCREMENT
person_id VARCHAR
person_url ...
person_name ...
您的文章形式类似
<form method="post">
<input type="hidden" name="id" value="<?php echo uniqid() ?>" />
...
</form>
查询应该是这样的:
$person_id = intval($_POST['id']);
$person_url = mysql_real_escape_string($_POST['url']);
$person_name = mysql_real_escape_string($_POST['name']);
mysql_query("INSERT INTO Persons (person_id, persno_url, person_name) VALUES ({$person_id} , {$person_url}, {$person_name})");
$ID = mysql_insert_id();
/功能,你使用什么库执行插入?答案取决于它... [它可能是重复的](http://stackoverflow.com/search?q=%5Bphp%5D+%5Bmysql%5D+last+insert+id)。 – 2012-07-25 20:29:36
我假设你使用PDO:[LastInsertId](http://php.net/manual/en/pdo.lastinsertid.php) – Romain 2012-07-25 20:30:08
mysql_insert_id? http://it2.php.net/manual/en/function.mysql-insert-id.php – 2012-07-25 20:30:59