Autor | Zpráva | ||
---|---|---|---|
fox2258 Profil * |
Zdravíčko,
<CENIK> <item> <id>67275</id> <partnum>MP-GEL-GR</partnum> <nazev>Podložka pod myš ERGO gelová šedá GEMBIRD retail balení MAXI</nazev> <item_url>http://www.gmb.nl/eGMB/item_view.aspx?id=989</item_url> <popis>MP-GEL Gel mouse pad with wrist rest Features Comfortable gel mouse pad with wrist rest Extra big size: 260x220 mm 3 mm thickness Grippy rubber bottom Packing Details Q'ty in crtn, pcs: 40 Crtn volume, CUM: 0.082362 Crtn weight, kgs: 13 Country of origin: CN Barcode: 8716309009898 Customs code: 3926909790 Gelová podložka pod myš. Komfortní, velikost 260mmx220mm </popis> <vyrobce>GEMBIRD</vyrobce> <vyrobce_url>www.gmb.nl</vyrobce_url> <Picture_L>http://www.neco.cz/prilohy/254180004486_0.jpg</Picture_L> <Picture_S>http://www.neco.cz/prilohy/254180004485_0.jpg</Picture_S> <Cena_bez>80</Cena_bez> <SNC>0</SNC> <AZ>0</AZ> <Cena_s>80</Cena_s> <Doporucena_bez_DPH>104</Doporucena_bez_DPH> <Cena_s_sDPH>97</Cena_s_sDPH> <Doporucena_s_DPH>126</Doporucena_s_DPH> <Dostupnost /> <Zaruka>24 měsíc(ů)</Zaruka> <EAN>8716309096584</EAN> <Skupina>Periferie a PC příslušenství</Skupina> <Podskupina>Vstupní zařízení</Podskupina> <Kategorie>Podložky a přelepky</Kategorie> <Podkategorie /> <PLU>Podložky pod myš</PLU> <ITEM_URL>http://www.neco.cz/eshop.aspx?content=DETAILTVR&nparams=kod_id;57311</ITEM_URL> <Stav>2</Stav> <Skladem>0</Skladem> </item> </CENIK> a při nahrávání mi to hodí tuhle chybu: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ty in crtn, pcs: 40 Crtn volume, CUM: 0.082362 Crtn weight, kgs: 13 Country of o' at line 1 Když ten popis změním jako že vymažu to na co to upozorňuje tak to pak projde, akorát mi jde o to, že mam ceník kde je mraky produktů a občas u nějakého produktu je ta syntaxe naprd takže z 5700 produktů se mi jich zapíše do databáze třeba jen 5400. Koukal jsem co mam za typ databáze a je to MariaDB 5.5 a když bych ho smazal a založil novej tak bych byl na verzi MariaDB 10.3. Může to vyřešit problém? a nebo je to potřeba řešit někde jinde a kde? v php zdrojovém kodu? mohu poskytnout Díky za radu zkrátka mu vadí ten ' za písmenem Q v popisu. Akorát nevím jak to ošetřit
<?php require "db.php"; // pripojeni k databazi $affectedRow = 0; $xml = simplexml_load_file("cenik.xml") or die("Error: Cannot create object"); foreach ($xml->children() as $row) { $id_produktu = $row->id; $part_number = $row->partnum; $nazev = $row->nazev; $item_url = $row->item_url; $popis = $row->popis; $vyrobce = $row->vyrobce; $obrazek_velky = $row->Picture_L; $obrazek_maly = $row->Picture_S; $cena_nakup_bez = $row->Cena_s; $cena_prodej_bez = $row->Doporucena_bez_DPH; $cena_nakup_dph = $row->Cena_s_sDPH; $cena_prodej_dph = $row->Doporucena_s_DPH; $dostupnost = $row->Dostupnost; $zaruka = $row->Zaruka; $skupina = $row->Skupina; $podskupina = $row->Podskupina; $kategorie = $row->Kategorie; $podkategorie = $row->Podkategorie; $plu = $row->PLU; $skladem = $row->Skladem; $dodavatel="jmeno_dodavatele"; $sql = "INSERT INTO zbozi(id_produktu,partnum,nazev,item_url,popis,vyrobce,obrazek_velky,obrazek_maly,cena_nakup_bez,cena_prodej_bez,cena_nakup_dph,cena_prodej_dph,dostupnost,zaruka,skupina,podskupina,kategorie,podkategorie,plu,skladem_ks,dodavatel) VALUES ('" . $id_produktu . "','" . $part_number . "','" . $nazev . "','" . $item_url . "','" . $popis . "','" . $vyrobce . "','" . $obrazek_velky . "','" . $obrazek_maly . "','" . $cena_nakup_bez . "','" . $cena_prodej_bez . "','" . $cena_nakup_dph . "','" . $cena_prodej_dph . "','" . $dostupnost . "','" . $zaruka . "','" . $skupina . "','" . $podskupina . "','" . $kategorie . "','" . $podkategorie . "','" . $plu . "','" . $skladem . "','" . $dodavatel . "')"; $result = mysqli_query($con, $sql); if (! empty($result)) { $affectedRow ++; } else { $error_message = mysqli_error($con) . "\n"; } } ?> <h2>Insert XML Data to MySql Table Output</h2> <?php if ($affectedRow > 0) { $message = $affectedRow . " records inserted"; } else { $message = "No records inserted"; } ?> <style> body { max-width:550px; font-family: Arial; } .affected-row { background: #cae4ca; padding: 10px; margin-bottom: 20px; border: #bdd6bd 1px solid; border-radius: 2px; color: #6e716e; } .error-message { background: #eac0c0; padding: 10px; margin-bottom: 20px; border: #dab2b2 1px solid; border-radius: 2px; color: #5d5b5b; } </style> <div class="affected-row"><?php echo $message; ?></div> <?php if (! empty($error_message)) { ?> <div class="error-message"><?php echo nl2br($error_message); ?></div> <?php } ?> |
||
Kajman Profil |
#2 · Zasláno: 9. 1. 2023, 02:32:06
Všechny hodnoty vkládané do dotazu musíte ošetřit. Např.
mysqli_real_escape_string($con, $part_number) |
||
Keeehi Profil |
#3 · Zasláno: 9. 1. 2023, 10:04:33
fox2258:
Ono to má ještě jeden důsledek. Když nemáte ty apostrofy ošetřené, vytváří to technicky zranitelnost SQL Injection. |
||
fox2258 Profil * |
#4 · Zasláno: 9. 1. 2023, 12:08:29
Kajman:
díky moc :-) vyřešeno |
||
Časová prodleva: 1 rok
|
0