我想通过将记录从一张桌子移到另一张桌子来对学生进行归档。这是我尝试使用的代码:
<?php ini_set('memory_limit', '100M'); $sql="Select * from `register` where student_id=".$student_id; $result=mysql_query($sql); $row=mysql_fetch_array($result); //Call the function to archive the table //Function definition is given below archive_record(archive,$row); //Once you archive, delete the record from original table $sql = "Delete from `register` where student_id=".$student_id; mysql_query($sql); function archive_record($archived_tablename,$row) { $sql = "insert into $archived_tablename values("; $i=0; while($i<(count($row)-1)) { $sql.="'".$row[$i]."',"; } $i=$i+1; $sql.="'".$row[$i]."'"; $sql.=")"; mysql_query($sql); return true; }
我遇到的问题是我遇到错误:
致命错误:XX行/archive-student.php中的内存不足(已分配80478208)(试图分配80216043字节)
除了有一个名为archive的列并从0更改为1之外,是否有其他方法可以执行此操作?这是因为我有30-50页选择表的记录。:)
INSERT INTO archive_table SELECT * FROM original_table WHERE id = 1
就那么简单。
如果表具有不同的列号,其他布局等,则必须指定列:too
INSERT INTO archive_table(field1, field2, field3) SELECT field7, field8, field9 FROM original_table WHERE id = 1