这是我的信息表:
CREATE TABLE `info` (
`id_info` int(10) NOT NULL auto_increment,
`judul_info` varchar(50) collate latin1_general_ci NOT NULL,
`konten` varchar(255) collate latin1_general_ci NOT NULL,
`diubah_oleh` varchar(20) collate latin1_general_ci NOT NULL,
`id_kategori` int(10) NOT NULL,
`tgl_buat` timestamp NOT NULL default '0000-00-00 00:00:00',
`tgl_ubah` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`dibuat_oleh` varchar(20) collate latin1_general_ci NOT NULL,
`id` int(10) NOT NULL,
PRIMARY KEY (`id_info`),
KEY `id_kategori` (`id_kategori`),
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=62 ;
这是我的上传表格
CREATE TABLE `upload` (
`id` int(10) unsigned NOT NULL auto_increment,
`deskripsi` text,
`filetype` varchar(200) default NULL,
`filedata` longblob,
`filename` varchar(200) default NULL,
`filesize` bigint(20) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=34 ;
我正在使用此查询:
$sql1="INSERT INTO info VALUES('','$judul', '$konten','$diubah_oleh','$kategori',now(),'$tgl_ubah','$dibuat_oleh','')";
$sql2="insert into upload values ('','$keterangan','$tipe','$filedata','$nama_file',$ukuran)";
$sql3="UPDATE info SET id=last_insert_id()";
$result=mysql_query($sql1);
$result=mysql_query($sql2);
$result=mysql_query($sql3);
我希望info.id与upload.id具有相同的值,但是使用此查询,我在info.id中获得的所有值与上次在upload.id中插入的值相同。
答案 0 :(得分:1)
CREATE TABLE `upload` (
`id` int(10) unsigned NOT NULL,
`deskripsi` text,
`filetype` varchar(200) default NULL,
`filedata` longblob,
`filename` varchar(200) default NULL,
`filesize` bigint(20) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=34 ;
$sql1="INSERT INTO info VALUES('','$judul', '$konten','$diubah_oleh','$kategori',now(),'$tgl_ubah','$dibuat_oleh','')";
$result=mysql_query($sql1);
$lastId = mysql_insert_id();
$sql2="insert into upload values ('$lastId','$keterangan','$tipe','$filedata','$nama_file',$ukuran)";
$result=mysql_query($sql2);
答案 1 :(得分:1)
下面的上一个更新声明是使用相同的id更新信息表中的所有行,因为没有where语句。
由于您需要info表中的上传表ID信息。
请按以下步骤操作:
首先运行$ sql2。 然后运行$ sql1,在info.id中插入last_insert_id()。 这样您也不需要使用update语句。
答案 2 :(得分:0)
mysql_insert_id()
还有一个替代的php函数。您可以使用它来生成在上次执行的查询中插入的ID。
答案 3 :(得分:0)
您可以使用 mysql_insert_id()
来完成此操作。此函数返回从先前的INSERT操作生成的AUTO_INCREMENT ID。您的代码应如下所示
$sql1="INSERT INTO info VALUES('','$judul', '$konten','$diubah_oleh','$kategori',now(),'$tgl_ubah','$dibuat_oleh','')";
$result=mysql_query($sql1);
$lastinsertedid= mysql_insert_id();
$sql2="insert into upload values ('$lastinsertedid','$keterangan','$tipe','$filedata','$nama_file',$ukuran)";
$result=mysql_query($sql2);
希望这有助于你
答案 4 :(得分:-1)
$ sql1 ="插入信息价值(''' $ judul',' $ konten',' $ diubah_oleh& #39;' $驾驶员学校',现在()' $ tgl_ubah'' $ dibuat_oleh''')&#34 ;;
$ sql2 ="插入上传值('',' $ keterangan',' $ tipe' $ 39; $ filedata& #39;' $ nama_file',$较大规模)&#34 ;;
$ last_id = last_insert_id();
$ sql3 =" UPDATE info SET id ="。$ last_id;
$结果= mysql_query($ SQL1);
$结果= mysql_query($ SQL2);
$结果= mysql_query($ SQL3);