Autor | Zpráva | ||
---|---|---|---|
lionel messi Profil |
#1 · Zasláno: 10. 2. 2014, 20:56:12
Zdravím,
snažím sa v PHP napísať nejaké hromadné vkladanie do DB, kt. by vložilo obsah všetkých súborov v danej zložke, narážam však na problém: <?php // viem, že extenzia mysql_* je zastaraná, ale v tejto chvíli je to jedno mysql_connect("localhost", "root", ""); mysql_select_db("analyzy"); mysql_set_charset("cp1250"); //univerzálna funkcia na pitvanie titulku function ziskajTitulok ($clanok) { $obsah = file_get_contents($clanok); $regular = "~(.*)(<title>)(.*)(</title>)(.*)~s"; $titulok = preg_replace($regular, "\\3", $obsah); return $titulok; } //univerzálna funkcia na pitvanie obsahu function ziskajObsah ($clanok) { $obsah0 = file_get_contents($clanok); $regular = "~(.*)(<p>)(.*)(</p>)(.*)~sU"; $obsah = preg_replace($regular, "\\3", $obsah0); $obsah2 = strip_tags(preg_replace("~<\?php.*~s", "", $obsah)); return $obsah2; } //univerzálna funkcia na vkladanie do databázy function ulozDoDatabazy ($clanok = "") { //na skúšku s uvedeným argumentom - vloží jeden súbor a funguje if (!empty($clanok)) { $titulok = ziskajTitulok($clanok); $obsah = ziskajObsah($clanok); mysql_query("INSERT INTO analyzy(id, url, titulok, text) VALUES (NULL, '$clanok', '$titulok', '$obsah')") or die(mysql_error()); } //hromadné vkladanie else { $pole = glob("*.php"); foreach ($pole as $subory) { $clanok = $subory; $titulok = ziskajTitulok($clanok); $obsah = ziskajObsah($clanok); mysql_query("INSERT INTO analyzy(id, url, titulok, text) VALUES (NULL, '$subory', '$titulok', '$obsah')") or die(mysql_error()); } } } ulozDoDatabazy(); ?> Označená časť (t. j. else) my hádže nasledovný error: 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 'localhost', 'root', '') or die (mysql_error($db)); my' at line 1 a pritom mi to nedáva žiadny zmysel, prihlasovacie údaje sú predsa v poriadku a spoločné pre obe verzie, if navyše funguje tak ako má.
Ďakujem veľmi pekne za každú pomoc. |
||
Davex Profil |
#2 · Zasláno: 10. 2. 2014, 22:44:29
Data bys měl před uložením do databáze vhodně ošetřit, aby neobsahovala speciální a potencionálně nebezpečné znaky, tedy použít
mysql_real_escape_string() .
|
||
lionel messi Profil |
#3 · Zasláno: 12. 2. 2014, 10:41:28
Davex:
Jasné, ale ani úprava skriptu nezmení jeho funkčnosť. |
||
Časová prodleva: 4 dny
|
|||
lionel messi Profil |
#4 · Zasláno: 16. 2. 2014, 12:24:55
Reagujem na Davexa:
Tak predsa bol pes zakopaný aj v neescapovaní, ale bol tam ešte jeden problém s úvodzovkami, vďaka! |
||
Časová prodleva: 10 let
|
0