CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
30.09.2015, 13:33:42
|
Anfänger
|
|
Registriert seit: Sep 2015
Alter: 72
Beiträge: 3
|
|
Speicherbereich nach mysqlinsert frei geben
Hallo zusammen
Ich habe folgendes Problem: Ich möchte nachdem ich einen Datensatz in eine Tabelle geschrieben habe den Speicherbereich wieder frei geben.
Dazu so glaube ich habe ich die Funktion mysqli_free_result und mysqli_store_result gefunden.
Ich vermute mal, dass ich mit mysqli_store_result arbeiten muss, wenn ich einen insert mache weiß es aber auch nicht ganz sicher.
Wie dem auch ist: Habe viele Stellen im Netz gefunden wo man versucht es zu erklären. Ein fassbares Beispile bisher jedoch nicht gefunden.
Als Syntax habe ich mysqli_stmt_store_result($stmt) und noch viele andere gefunden. Kann mir jeman mal mitteilen was ich denn nun tatsächlich verwenden muss.
Unten im Code steht noch mysqli_stmt_store_result($query) damit bekomme ich dann die folgende Fehlermeldung.
Warning: mysqli_stmt_store_result() expects parameter 1 to be mysqli_stmt, string given in
Habe zig Varianten versucht keine hat geholfen. Ich bin hier für jeden Tipp dankbar.
Danke!
PHP-Code:
$query ="";
require_once ('../allg/konfiguration.php');
require_once ('../allg/opendb.php');
# Tabelle leeren
$query = "truncate table ip2location_db9";
mysqli_query($db_link, $query) or die (mysqli_error($db_link));
define("ip_from", 0);
define("ip_to", 1);
define("country_code", 2);
define("country_name", 3);
define("region_name", 4);
define("city_name", 5);
define("latitude", 6);
define("longitude", 7);
define("zip_code", 8);
require_once ('../allg/konfiguration.php');
require_once ('../allg/opendb.php');
if (($handle = fopen("C:\Users\Volker\Downloads\IP2LOCATION_LITE_DB9.CSV\IP2LOCATION_LITE_DB9.CSV_02.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
# $num = count($data);
$query = "INSERT INTO ip2location_db9 VALUES ".
"(".$data[ip_from].",
'".$data[ip_to]."',
'".$data[country_code]."',
'".$data[country_name]."',
'".$data[region_name]."',
'".$data[city_name]."',
'".$data[latitude]."',
'".$data[longitude]."',
'".$data[zip_code]."'),";
$query = substr($query, 0, -1);
$query = $query.";";
mysqli_query($db_link, $query) or die (mysqli_error($db_link));
echo $query;
mysqli_stmt_store_result($query);
}
fclose($handle);
}
|
30.09.2015, 17:28:20
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Speicherbereich nach mysqlinsert frei geben
Hallo und willkommen hier im Forum.
Schau mal hier. Du musst Deine Query erst in ein Statment umwandeln. Dann sollte es funktionieren.
Welchen Zweck hat ein zweimaliger Aufruf von require_once an verschiedenen Stellen?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
30.09.2015, 21:51:54
|
Anfänger
|
|
Registriert seit: Sep 2015
Alter: 72
Beiträge: 3
|
|
AW: Speicherbereich nach mysqlinsert frei geben
Hallo
zunächst vielen Dank für den unerschrockenen Einsatz.
Die beiden
require_once ('../allg/konfiguration.php');
require_once ('../allg/opendb.php');
sind natürlcih überflüssig.
Der abgegebene Link ist mir bekannt. Aber ich schaffe es nicht ihn umzusetzen.
Ich kann diese Angaben einfach nicht interpretieren und auf mein Problem übertragen.
Ich suche deshalb kein abstraktes Beispiel sondern ein Beispiel bezogen auf mein Problem.
Ich weis das das abstrakte Beispiel dies sicherlich abdeckt aber ich kann es nicht umsetzen.
|
01.10.2015, 09:47:36
|
Anfänger
|
|
Registriert seit: Sep 2015
Alter: 72
Beiträge: 3
|
|
AW: Speicherbereich nach mysqlinsert frei geben
Hallo und guten Tag vt1816
Habe mich noch einmal intensiv mit deinem Link beschäftigt und noch ein Beispiel gefunden.
So wie es aussieht scheint es auch zu funktionieren. Ich muss immerhin 3,5 Millionen Datensätze importieren. Hier der aktuelle code.
Vielen Dank für den Tipp es hat also doch noch funktioniert.
PHP-Code:
<?php
$beginn = microtime(true);
ini_set('max_execution_time', 3600);
ini_set('memory_limit', '1024M');
require_once ('../allg/konfiguration.php');
require_once ('../allg/opendb.php');
# Tabelle leeren
$query = "truncate table ip2location_db9";
mysqli_query($db_link, $query) or die (mysqli_error($db_link));
define("ip_from", 0);
define("ip_to", 1);
define("country_code", 2);
define("country_name", 3);
define("region_name", 4);
define("city_name", 5);
define("latitude", 6);
define("longitude", 7);
define("zip_code", 8);
if (($handle = fopen("C:\Users\Volker\Downloads\IP2LOCATION_LITE_DB9.CSV\IP2LOCATION_LITE_DB9.CSV_02.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$query = "INSERT INTO ip2location_db9 VALUES ".
"(".$data[ip_from].",
'".$data[ip_to]."',
'".$data[country_code]."',
'".$data[country_name]."',
'".$data[region_name]."',
'".$data[city_name]."',
'".$data[latitude]."',
'".$data[longitude]."',
'".$data[zip_code]."'),";
$query = substr($query, 0, -1);
$query = $query.";";
if ($stmt = mysqli_prepare($db_link, $query)) {
/* execute query */
mysqli_stmt_execute($stmt);
/* store result */
mysqli_stmt_store_result($stmt);
# printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));
/* free result */
mysqli_stmt_free_result($stmt);
/* close statement */
mysqli_stmt_close($stmt);
.
}
fclose($handle);
# hier lasse ich mir während der Testphase ausgeben wieviel tatsächlich importiert wurden.
if ($result = mysqli_query($db_link, "Select count(*) from ip2location_db9")) {
$row_cnt = mysqli_num_rows($result);
printf("Es wurden %d rows.\n",$row_cnt);
mysqli_free_result($result);
}
}
$dauer = microtime(true) - $beginn;
echo "Verarbeitung des Skripts: $dauer Sek.";
?>
|
01.10.2015, 13:17:36
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Speicherbereich nach mysqlinsert frei geben
Prima, dass es doch noch geholfen hat.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:37:46 Uhr.
|