Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
MySQL-Server mit mehr als 127 Daten füllen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
MySQL-Server mit mehr als 127 Daten füllen


 
Wotan
20-02-2002, 07:54 
 
Hallo Ihr,

weiß jemand ob es eine Begrenzung gibt, das man nicht mehr als 127 Datensätze auf einer Lokalenmaschine per Script eintragen kann?
Ich benutze folgendes Script zum eintragen:

<?
include("../phptest/db_data.inc.php");

$db = mysql_connect("$MySQL_Host","$MySQL_User","$MySQL_Passw")
or die (mysql_error());
mysql_select_db("$MySQL_Data");

$f = fopen('data','r') or die('Couldn\'t open file');
$i = 1;
while (!feof($f)) {
$eintrag = explode('|', fgets($f,16384));
mysql_query("INSERT INTO gbuch SET name='$eintrag
0]',mail='$eintrag[1]',web='$eintrag[2]',bewertung='$eintrag
5]',eintrag='$eintrag[6]',datum='$eintrag
7]',uhrzeit='$eintrag[8]'");
$i++;
}
fclose($f);
?>


Die Datei ist laut Explorer 32kb groß, habe es auch schon probiert, die Datei in 127 Datensätze aufzuteilen, hilft aber nicht. Es sind ingesamt 340 Datensätze die ich eintragen muß.

 
Berni
20-02-2002, 08:55 
 
welche meldung bekommst du vom SQL-Server?

 
JoelH
20-02-2002, 09:27 
 
das hört sich so an als verwendest du als Variablentyp ein kleines tinyint . Das erkenn ich an der 127 ;) Änder das mal noch int

 
Sir Robert de Broux
20-02-2002, 17:41 
 
Die Datensätze habe doch nichts mit dem Datentypen zu tun, oder?

Der Datentyp läst sich doch für jede Spalte seperat festlegen.

Ich habe auf meinem Localen Rechner Tabellen mit über 12000 Datensätze. Also gibt es wohl keine Beschränkung für Lokale Rechener.

 
pekka
20-02-2002, 18:59 
 
>>Die Datensätze habe doch nichts mit dem Datentypen zu tun, oder?

Doch. Wenn Du ein sich selbst hochzählendes ID-Feld mit dem Typ "tinyint" versiehst, ist bei 127 (genauer 128) Datensätzen schluss, weil tinyint nur 7 bit gross ist. Nach einem ändern des Datentyps auf "int" funktioniert alles wie gehabt.

 
Wotan
20-02-2002, 20:54 
 
$eintrag = explode('|', fgets($f,16384));



Muß ich an der Zeile noch was ändern bei 32kb oder kann die so bleiben?

 
Titus
20-02-2002, 23:43 
 
Original geschrieben von pekka
Nach einem ändern des Datentyps auf "int" funktioniert alles wie gehabt.

Also ich nehm als ID immer bigint unsigned, damit hab ich Platz für einige Trillionen Datensätze - das reicht auf jeden Fall.

 
MelloPie
22-02-2002, 17:23 
 
Warum eigentlich so kompliziert nimm doch

LOAD DATA INFILE

 
Titus
22-02-2002, 19:12 
 
Wozu bitte soll LOAD_DATA_INFILE in diesem Falle gut sein?


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:37 Uhr.