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 байта) в /archive-student.php on line XX
есть ли другой способ сделать это, за исключением столбца с именем archive и изменения от 0 до 1? Это потому что я имейте 30-50 страниц, выбирая записи таблицы. :)
4 ответов
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
INSERT INTO new_table SELECT id FROM old_table
рекомендуется переместить одну строку таблицы из любой таблицы в требуемую таблицу.
while($i<(count($row)-1))
{
$sql.="'".$row[$i]."',";
}
$i=$i+1;
вам нужно $i=$i+1;
внутри цикла...
а,
INSERT INTO archive TABLE
SELECT FROM original_table WHERE id = 1
- Это лучший способ это сделать ;)
<html>
<body bgcolor="lightblue">
<h1>Data fetched from register.php</h1>
<table border=1 cellspacing=0 cellpadding=10px>
<tr>
<th>id</th>
<th>fullname</th>
<th>email</th>
<th>username</th>
<th>dob</th>
<th>password</th>
<th>gender</th>
<th>lanuage</th>
<th>country</th>
</tr>
<?php
$xyz=mysqli_connect("localhost", "root", "", "myprogrammes");
$abc=mysqli_query($xyz, "select * from table");
while ($bb=mysqli_fetch_array($abc)){
$id1=$bb['id'];
$fullname1=$bb['fullname'];
$email1=$bb['email'];
$username1=$bb['username'];
$dob1=$bb['dob'];
$password1=$bb['password'];
$gender1=$bb['gender'];
$lanuage1=$bb['lanuage'];
$country1=$bb['country'];
?>
<tr>
<th><?php echo $id1 ; ?></th>
<th><?php echo $fullname1 ; ?></th>
<th><?php echo $email1 ; ?></th>
<th><?php echo $username1 ; ?></th>
<th><?php echo $dob1 ; ?></th>
<th><?php echo $password1 ; ?></th>
<th><?php echo $gender1 ; ?></th>
<th><?php echo $lanuage1 ; ?></th>
<th><?php echo $country1 ; ?></th>
</tr>
<?php } ?>
</body>
</html>