webForumDet fria alternativet

MySQL och svart magi?

PHPur PHP

5 svar · 558 visningar · startad av aasah

aasahMedlem sedan mars 20034 471 inlägg
#1

Ursäkta rubriken... men det känns så!

Jag försöker flytta vissa värden från en gammal tabell till en ny med följande kod: (Och ja, en kolumn i ny heter något bättre än i old. Detta är dock inte skälet till förflyttningen.)

  $old = "SELECT A, B, C, D, E, F FROM Old ORDER BY id ASC";
  $oldRes = mysql_query($old) or die(mysql_error());
  while ($row = mysql_fetch_array($oldRes, MYSQL_ASSOC)) {
	  foreach($row as $i=>$v) {
	     $row[$i] = addslashes($v);
	     echo "$row[$i]<br>"; 
     }
	  $ins = "INSERT INTO Ny (A, B, C, X, E, F) 
              VALUES('".$oldRes['A']."', '".$oldRes['B']."', '".$oldRes['C']."', 
              ".$oldRes['D'].", ".$oldRes['E'].", ".$oldRes['F'].")";
	  echo "$ins<br>";
	  mysql_query($ins) or die($ins."<br>".mysql_error());
  }

Detta ger följande utskrift:

Felmeddelande skrev:

ui=62101
i166
POA
4
1
12 <--- så här långt är det ur foreach
INSERT INTO Ny (A, B, C, X, E, F) VALUES('', '', '', , , ) <---- echo $ins
INSERT INTO Ny (A, B, C, X, E, F) VALUES('', '', '', , , )
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , )' at line 1

Sista meddelandet är från mysql_error. Va? :q Vart ända in i... tar mina fina värden vägen??? Vad är det jag inte ser?

GeinMedlem sedan sep. 20005 700 inlägg
#2

Varför kör du inte istället:

INSERT INTO Ny (A, B, C, X, E, F)
      SELECT A, B, C, X, E, F FROM Old ORDER BY id ASC
aasahMedlem sedan mars 20034 471 inlägg
#3

Um, jooo.... Ibland räcker det att posta här....

$oldRes i $ins ska naturligtvis vara $row. SUCK!

aasahMedlem sedan mars 20034 471 inlägg
#4

Gein skrev:

Varför kör du inte istället:

INSERT INTO Ny (A, B, C, X, E, F)
      SELECT A, B, C, X, E, F FROM Old ORDER BY id ASC

Jaaa du, bra fråga! :r För att jag inte tänkte mig för...

Finns det för övrigt något sätt att göra detta direkt från phpmyadmin? Det vore ju ännu smidigare...

GeinMedlem sedan sep. 20005 700 inlägg
#5

Javisst, det är bara köra SQL-kommandot i phpMyAdmin.

aasahMedlem sedan mars 20034 471 inlägg
#6

Ja, kom på att det måste funka med det kortare sättet att skriva... Ännu ett skäl att använda det! Tack, Gein!

130 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)