首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入到和主键、自动增量字段和默认值

问插入到和主键、自动增量字段和默认值
EN

Stack Overflow用户
提问于 2012-01-06 00:56:35
回答 3查看 8.8K关注 0票数 0

我正在开发一个使用MySQL数据库的PHP应用程序。

我想知道什么是最好的方法来找出主键(或任何其他自动增量字段)在插入后接收到的行。

返回整行的结果也很不错,因为我还想知道分配给未显式设置的字段的默认值。

感谢所有的帮助。

--编辑

因此,我使用的是一个内部框架,它抽象了实际的数据库功能,所以我不能使用特定于连接的"mysql_last_insert_id",而"select last_insert_id“查询AFAIK会受到其他数据库连接的影响,特别是考虑到我使用的框架会为每个查询打开新的连接。

我猜这是一个框架问题,你帮不了我。不过,如果INSERT INTO有“返回插入的行”模式,那就更好了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-06 01:01:44

MySQL提供了一种方便的方法来回答这个问题:

代码语言:javascript
复制
mysql> SELECT LAST_INSERT_ID()

mysql_*函数附带了一个包装器: check mysql_insert_id

用于PDO的mysql驱动程序提供了相同的功能:

代码语言:javascript
复制
$pdo->exec('insert into ...');
$lastId = $pdo->lastInsertId();
票数 4
EN

Stack Overflow用户

发布于 2012-01-06 01:10:29

尝尝这个

MySQL代码:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `mytable` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `member` int(11) NOT NULL,
  `update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `created` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`),
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

AUTO_INCREMENT

Show.

MySQL Insert:

代码语言:javascript
复制
INSERT INTO mytable (`id`,`name`,`update`,`created`) values (NULL,'TEST',NOW(),NOW());

或

代码语言:javascript
复制
INSERT INTO mytable (`name`,`update`,`created`) values ('TEST',NOW(),NOW());

或

代码语言:javascript
复制
INSERT INTO mytable (`name`,`created`) values ('TEST',NOW());

PHP MySQL代码:

代码语言:javascript
复制
<?php

$foo = 'test';

mysql_query("INSERT INTO mytable (`name`,`created`) values ('".mysql_real_escape_string( $foo )."',NOW())");

// GET LAST ID
$id = mysql_insert_id();

?>

PHP中的使用MYSQL_REAL_ESCAPE_STRING

代码语言:javascript
复制
mysql_real_escape_string( string )

请参阅此文档mysql_real_escape_string

再见!!

票数 2
EN

Stack Overflow用户

发布于 2012-01-06 00:58:56

如果您正在使用mysql_*函数,那么您可以简单地使用mysql_insert_id()。如果您想要缺省行的值,则必须使用键选择它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8746416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档