Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 01. Februar 2011 21:44
- leerraum
- kennt CMS/ms
- Ort: Baden-Baden
- Registriert: 15. Dezember 2010
- Beiträge: 479
- Webseite
[GELÖST] MySQL, special Chars und PHP
Hi,
das hat nur indirekt was mit CMSms zu tun, aber ich steh grade voll auf dem Schlauch.
Ich darf in einer DB von Tabelle 1 nach Tabelle 2 haufenweise Daten portieren. Das macht man natürlich am Besten mit PHP.
[== PHP ==]
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'job', '". utf8_encode(html_entity_decode($row['job']))) or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'titel', '". utf8_encode(html_entity_decode($row['titel']))) or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'webseite', '". utf8_encode(html_entity_decode($row['webseite']))) or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'abschluss', '". utf8_encode(html_entity_decode($row['abschluss']))) or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'e_mail', '". utf8_encode(html_entity_decode($row['e_mail']))) or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'name', '". utf8_encode(html_entity_decode($row['name']))) or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'vorname', '". utf8_encode(html_entity_decode($row['vorname']))) or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'joblink', '". utf8_encode(html_entity_decode($row['joblink']))) or die(mysql_error()); $b++;
Mein Problem ist jetzt, dass die Datenbank Ersteller leider überall alles reingeschrieben haben. Heißt, es sind HTML Tags drin, special Chars ohne Ende und und und...
Dazu kommt noch, dass ich das ganze von latin1 nach UTF8 portieren möchte.
Ich bekomme von der Datei diese Meldung zurück:
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 ''Studentin Zahn' at line 1
Subbar. Kann mir irgendjemand helfen? Es muss doch da nen Modus geben, solche Chars zu ignorieren und die einfach hart einzufügen.
Danke
leerraum
Beitrag geändert von leerraum (02. Februar 2011 19:05)
Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.
Offline
#2 01. Februar 2011 21:52
- piratos
- Gast
Re: [GELÖST] MySQL, special Chars und PHP
Mysql kann alle Zeichen speichern.
Du solltest dir mal das anlesen:
#3 02. Februar 2011 12:59
- leerraum
- kennt CMS/ms
- Ort: Baden-Baden
- Registriert: 15. Dezember 2010
- Beiträge: 479
- Webseite
Re: [GELÖST] MySQL, special Chars und PHP
hm, ok, ich habs durchgelesen, habs eingebaut, ich bekomme aber immernoch den fehler. soweit ich das verstehe, muss es sich wohl um ein zeichen handeln, dass nicht durch diese methode abgedeckt wird.
Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.
Offline
#4 02. Februar 2011 13:22
- piratos
- Gast
Re: [GELÖST] MySQL, special Chars und PHP
Dann hast du nicht alle Felder damit behandelt oder es falsch (Reihenfolge - das muss die finale Behandlung sein).
Ansonsten ohne die vollständige fehlerhafte SQL kann man die nicht helfen.
#5 02. Februar 2011 14:51
- leerraum
- kennt CMS/ms
- Ort: Baden-Baden
- Registriert: 15. Dezember 2010
- Beiträge: 479
- Webseite
Re: [GELÖST] MySQL, special Chars und PHP
hm, ich poste hier das vollständige script und schicke dir per mail einen link zu db. ich kann leider die daten hier nicht öffentlich machen, weils eine lange liste personenbezogener informationen ist.
script:
[== php ==]
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'bvssetemp';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
mysql_select_db ($dbname);
$result = mysql_query ("SELECT titel, name, mail, page, jahrgang, job, link, agbtg, eintrag FROM eheliste");
$c = 8;
$b = 66;
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
mysql_query ("INSERT INTO bvsse_module_feusers_users(id, username, password, createdate, expires) VALUES ('".$c."', '".utf8_encode(mysql_real_escape_string($row['name'])))))."', '".md5('ehemaligerschueler')."', '".utf8_encode(mysql_real_escape_string($row['eintrag'])))))." 23:59:59', '2099-12-31 23:59:59'") or die(mysql_error());
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'job', '". utf8_encode(mysql_real_escape_string($row['job']))) or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'titel', '". utf8_encode(mysql_real_escape_string($row['titel']))) or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'webseite', '". utf8_encode(mysql_real_escape_string($row['webseite']))) or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'abschluss', '". utf8_encode(mysql_real_escape_string($row['abschluss']))) or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'e_mail', '". utf8_encode(mysql_real_escape_string($row['e_mail']))) or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'name', '". utf8_encode(mysql_real_escape_string($row['name']))) or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'vorname', '". utf8_encode(mysql_real_escape_string($row['vorname']))) or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'joblink', '". utf8_encode(mysql_real_escape_string($row['joblink']))) or die(mysql_error()); $b++;
$c++;
}
echo('done!');
mysql_close ($conn);
?>
Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.
Offline
#6 02. Februar 2011 14:58
- piratos
- Gast
Re: [GELÖST] MySQL, special Chars und PHP
Das nützt wenig bis nichts - den Sql Fehler ohne Daten zu finden ist praktisch nicht möglich.
Das aber ist schon mal verkehrt:
utf8_encode(mysql_real_escape_string(
muss
mysql_real_escape_string(utf8_encode .....
sein - letzte Instanz !!
Am besten die voillständige SQL einmal ausgeben wo es klemmt - Personendaten kann man ja verfremden.
Und alles was Text ist also auch Username, Passwort und blah muss damit behandelt werden.
Beitrag geändert von piratos (02. Februar 2011 14:59)
#7 02. Februar 2011 15:10
- leerraum
- kennt CMS/ms
- Ort: Baden-Baden
- Registriert: 15. Dezember 2010
- Beiträge: 479
- Webseite
Re: [GELÖST] MySQL, special Chars und PHP
e-mail ist grade an dich raus
Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.
Offline
#8 02. Februar 2011 15:38
- piratos
- Gast
Re: [GELÖST] MySQL, special Chars und PHP
Die Daten sind doch gut - enthalten fast überall in der Rubrik job Links zu der Jobstelle - entfernt man die wird der Text teils zerissen da manchmal >Jobeschreibung</a> gegeben ist.
Sollen die href's unter dem Job Eintrag verschwinden ?
#9 02. Februar 2011 15:41
- leerraum
- kennt CMS/ms
- Ort: Baden-Baden
- Registriert: 15. Dezember 2010
- Beiträge: 479
- Webseite
Re: [GELÖST] MySQL, special Chars und PHP
ich hab versucht es 1:1 zu übernehmen... ehm, bei mir steht die eheliste auf latin1 swedish ci oder ähnlich. ich hab beim export der db allerdings utf8 angegeben. ist das erhalten geblieben, oder ist die jetzt auch utf8? auf jeden fall tut das script so mit den daten nicht. Ich bekomme bei "'Studentin in Gießen" ein Problem.
Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.
Offline
#10 02. Februar 2011 16:23
- piratos
- Gast
Re: [GELÖST] MySQL, special Chars und PHP
Dein ganzes Script ist ziemlich fehlerhaft - bist ein Klammerkönig.
Und es sollen Felder importiert werden die es nicht gibt:
Notice: Undefined index: webseite in /var/www/l2/test.php on line 20
Notice: Undefined index: abschluss in /var/www/l2/test.php on line 21
Notice: Undefined index: e_mail in /var/www/l2/test.php on line 22
Notice: Undefined index: vorname in /var/www/l2/test.php on line 24
Notice: Undefined index: joblink in /var/www/l2/test.php on line 25
Also klären sollen die Links aus dem Job raus, welche Felder wohin.
Deine utf8 codierungsdinge habe ich alle entfernt.
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
mysql_select_db ($dbname);
$result = mysql_query ("SELECT titel, name, mail, page, jahrgang, job, link, agbtg, eintrag FROM eheliste");
$c = 8;
$b = 66;
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{ $names=explode(',',$row['name']);
if (isset($names[1]))
{
$name=$names[0];
$vorname=$names[1];
}
elseif (isset($names[0]))
{
$name=$names[0];
$vorname='';
}
mysql_query ("INSERT INTO bvsse_module_feusers_users(id, username, password, createdate, expires) VALUES ('".$c."', '".mysql_real_escape_string($row['name'])."', '".md5('ehemaligerschueler')."', '".mysql_real_escape_string($row['eintrag'])." 23:59:59', '2099-12-31 23:59:59')") or die(mysql_error());
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'job', '".mysql_real_escape_string($row['job'])."')") or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'titel', '".mysql_real_escape_string($row['titel'])."')") or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'webseite', '".mysql_real_escape_string($row['page'])."')") or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'abschluss', '".mysql_real_escape_string($row['jahrgang'])."')") or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'e_mail', '".mysql_real_escape_string($row['mail'])."')") or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'name', '".mysql_real_escape_string($name)."')") or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'vorname', '".mysql_real_escape_string($vorname)."')") or die(mysql_error()); $b++;
mysql_query ("INSERT INTO bvsse_module_feusers_properties(id,userid,title,data ) VALUES ('".$b."', '".$c."', 'joblink', '".mysql_real_escape_string($row['link'])."')") or die(mysql_error()); $b++;
$c++;
}
echo('done!');
mysql_close ($conn);
?>
wird bei mir einwandfrei eingelesen.
Falls noch etwas sein sollte, den Rest müsstest du allein schaffen.
#11 02. Februar 2011 16:24
- piratos
- Gast
Re: [GELÖST] MySQL, special Chars und PHP
PS Am Vorposting kann man gut erkennen warum man bei der Entwicklung alles an Bemerkungen, Warnungen und Fehlern ausgeben sollte.
PS:
Daten komplett entfernt inkl. Mail.
Beitrag geändert von piratos (02. Februar 2011 16:26)
#12 02. Februar 2011 16:57
- leerraum
- kennt CMS/ms
- Ort: Baden-Baden
- Registriert: 15. Dezember 2010
- Beiträge: 479
- Webseite
Re: [GELÖST] MySQL, special Chars und PHP
ok, moment, ich guck grade mal
...
der HAMMER! woran lag das jetzt genau? waren das nur die Kommas, die MySQL so verwirrt haben? (mal abgesehen von den 150 script fehlern )
Klammerkönig hat mich auch noch keiner genannt!
DICKES DANKE!
Beitrag geändert von leerraum (02. Februar 2011 17:02)
Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.
Offline
#13 02. Februar 2011 18:01
- piratos
- Gast
Re: [GELÖST] MySQL, special Chars und PHP
Klammerkönig hat mich auch noch keiner genannt!
Auf der einen Seite viel zu viele Klammern auf der anderen Seite fehlten sie.
Musst noch ein gelöst rein pinseln.
#14 02. Februar 2011 19:05
- leerraum
- kennt CMS/ms
- Ort: Baden-Baden
- Registriert: 15. Dezember 2010
- Beiträge: 479
- Webseite
Re: [GELÖST] MySQL, special Chars und PHP
mit anderen worten: putz mal deinen code
mach ich gleich.
Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.
Offline
Seiten: 1