我有一张桌子:
CREATE TABLE `table_listnames` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`address` varchar(255) NOT NULL,
`tele` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
和查询:
INSERT INTO table_listnames (name, address, tele)
SELECT * FROM (SELECT 'Rupert', 'Somewhere', '022') AS tmp
WHERE NOT EXISTS (
SELECT name FROM table_listnames WHERE name = 'Rupert'
) LIMIT 1;
我希望查询打印出已插入或已选择的记录的ID。有任何想法吗?谢谢!
答案 0 :(得分:1)
您可以使用LAST_INSERTED_ID获取最后插入的自动增量值,请参阅http://dev.mysql.com/doc/refman/5.5/en/information-functions.html#function_last-insert-id。
首先检查受影响的行数是个好主意。您可以成功执行没有匹配行的查询。
答案 1 :(得分:0)
好吧,基本上是为了获取插入记录的id:
在SELECT id FROM table_listnames WHERE name = ''
基本上,您的代码在插入时会在变量中包含记录,因此请使用$ name变量来选择ID,并使用$result = mysql_query($query);
将结果存储在$ result变量中。
要获取所选记录的ID,基本上是:
SELECT id FROM table_listnames WHERE something = 'something'
所以,让我们说,您的PHP代码选择名称字段,并使用$ name变量存储要匹配的数据,您只需添加SELECT id
,就可以将结果存储到变量,例如$result = mysql_query($query);
$ query包含您正在运行的SQL。
我希望这是你的期望。虽然我使用mysql_ *函数来解释你,但请不要使用mysql_ *函数。