Я хотел бы архивировать студента, перемещая запись из одной таблицы в другую. Это код, который я пытаюсь использовать:php и mysql копировать запись из одной таблицы в другую
<?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;
}
Проблема Я имею в том, что я получаю сообщение об ошибке:
Фатальная ошибка: Недостаточно памяти (выделено 80478208) (пытались выделить 80216043 байт) in /archive-student.php в строке XX
Есть ли другой способ сделать это, за исключением того, что имеется столбец с именем archive и изменяется от 0 до 1? Это связано с тем, что у меня есть 30-50 страниц, которые выбирают записи таблицы. :)
Вы можете использовать 'INSERT ... SELECT'. Какова структура ваших таблиц? – bfavaretto