Nezapíše se celý řetězec do MySql – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nezapíše se celý řetězec do MySql – MySQL – Fórum – Programujte.comNezapíše se celý řetězec do MySql – MySQL – Fórum – Programujte.com

 

Bobo60
Newbie
15. 3. 2014   #1
-
0
-

Ahojda všichni. 
Jsem z toho už trotl. Buď něco prostě nevidím, nebo nebo se dějou zázraky.

V Mysql mám tabulku poptavka, které jsou mimo jiných sloupce id (int) a podklady (text). 
Kód:

$nazev_souboru = "udaje-klienta-".utf2ascii($_POST["prijmeni"]).".pdf";
$cesta = "soubory/".$_POST["nazev_slozka"]."/podklady/$nazev_souboru";
// Vygenerování souboru s údaji klienta
include "php/pdf/udaje.php";

// Kontrola zda je buňka podklady prázdná
$soubory = mysql_result(mysql_query("SELECT podklady FROM poptavka WHERE id='".$_POST["id"]."'"),0);
if($soubory!="") {
	// Není prázdná
	if(!preg_match("~$nazev_souboru~",$soubory)) {
		// není obsažen v záznamu - vkládá se
			if(copy("img/ikony/pdf.png","soubory/".$_POST["nazev_slozka"]."/podklady/nahledy/nahl-".SubStr($nazev_souboru,0,-4).".png")) {
			// Aktualizace záznamu
			$nazev_souboru = ",".$nazev_souboru;
			mysql_query("UPDATE poptavka SET podklady = concat(podklady, '$nazev_souboru') WHERE id='".$_POST["id"]."'");
			echo VypisChybuMysql();
		}
	}
} else {
	// Je prázdná
		if(copy("img/ikony/pdf.png","soubory/".$_POST["nazev_slozka"]."/podklady/nahledy/nahl-".SubStr($nazev_souboru,0,-4).".png")) {
		$sql = "UPDATE poptavka SET podklady = '$nazev_souboru' WHERE id = '".$_POST["id"]."'";
		//echo $sql."<br />";
		mysql_query($sql);
		echo VypisChybuMysql();
	}
}

Do db se však zapíše v obou případech řetězec zkrácený o jeden poslední znak a to bez ohledu na délku vkládaného řetězce - při 10 i 500 znacích se odstraní pouze poslední znak.
Ta tabulka už nějakou dobu běží a zapisujou se tam bezchybně poměrně dlouhý seznamy příloh. Datový typ text je nastaven správně, kódování utf8_unicode_ci, omezení žádné. 
Blbne to pouze v úryvku, který jsem teď přidával kvůli generování dalších pdfek. 
Ve scriptu to mám přesně podle předlohy. 
Všechno kontroluji neustále už druhý den a fakt nevím čím by to mohlo být. 
Ale něčím to je a bude to mezi židlí a klávesnicí.
Zápis mysql nevrací žádnou chybu.

Díky za každou radu.

Nahlásit jako SPAM
IP: 78.80.97.–
Kit+15
Guru
15. 3. 2014   #2
-
0
-

#1 Bobo6
Máš tam hromadu SQL injekcí, chtělo by to celé předělat. Proč nepoužiješ místo celého skriptu jeden jediný INSERT, který tu poptávku prostě přidá?

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

Podobná vlákna

Soubor se nepřečte celý — založil richard.zavodny

For neprojde cely list — založil shockwave

Program se nedokončí celý — založil Marek

Pozadi pres cely monitor — založil dyžon

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý