-- ----------------------------------------------------------
-- 表的结构 `procedure_test`
--CREATE TABLE IF NOT EXISTS `procedure_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(50) DEFAULT NULL,
`datetime` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;--
-- 转存表中的数据 `procedure_test`
--
DELIMITER $$
--
-- 存储过程
--
CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_procedure_test`(title varchar(50),datetime datetime)
BEGIN
insert into procedure_test(title,`datetime`) values(title,datetime);
select LAST_INSERT_ID();
END$$DELIMITER ;
错误类型:Commands out of sync; you can't run this command nowPHP代码<?php
for($i = 0; $i < 20; $i++)
{
$title = 'title'.$i;
$datetime = date("Y-m-d H:i:s");
mysql_query("call insert_procedure_test('$title', '$datetime');") or die(mysql_error());
}
?>
解决方案 »
- mysql的update问题
- RedHat E4 Linux 日志问题,急急!!!
- 求MySQL语句查询
- 求: MYSQL 点击数量递加1的语句。
- mysql问题
- mysql操作出现中文乱码
- perl(Class::MethodMaker) is needed by 怎么处理
- 再发昨天问题:求高手:mysql union all 两个表后怎么写分页sql语句?
- mysql 使用事件调度,将数据导出几个文件,如何实现?
- Mysql5.7的中文全文索引功能怎么样?谁用过呢?
- 换数据库用phpmyadmin导入.sql文件出现“有可能您发现了SQL分析器的臭虫。”
- 如何在DOS下使用net start mysql 命令
--
-- 存储过程
--
CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_procedure_test`(title varchar(50),vdatetime datetime)
BEGIN
insert into procedure_test(title,`datetime`) values(title,vdatetime);
select LAST_INSERT_ID();
END$$DELIMITER ;不要用关键字做字段名称或表名称。
call insert_procedure_test('a','2010-11-20 10:10:10');
mysql> call insert_procedure_test('a','2010-11-20 10:10:10');
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 5 |
+------------------+
1 row in set (0.00 sec)Query OK, 0 rows affected (0.01 sec)mysql> call insert_procedure_test('a','2010-11-20 10:10:10');
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 6 |
+------------------+
1 row in set (0.00 sec)Query OK, 0 rows affected (0.00 sec)mysql>
地如何解决?平时不用存储过程,是可以一直用mysql_query("insert....")的。
不能用这种方式吗?
$prh = $dbh->prepare('INSERT INTO family (id,name) VALUES (?,?)');
$dbh->execute($prh,array(1,'Vito'));
for($i = 0; $i < 20; $i++)
{
$title = 'title'.$i;
$datetime = date("Y-m-d H:i:s");
mysql_query("call insert_procedure_test('$title', '$datetime');") or die(mysql_error());
}
?> select LAST_INSERT_ID();每次调用过程插入,就返回一个LAST....ID啊。