Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Znak & problem mysql
Forum PHP.pl > Forum > Przedszkole
MarcinKostrzewa2
Mam poniższe zapytanie do bazy:
  1. if (isset($_POST['nazwa_firmy'])) {
  2. $nazwa_firmy = $_POST['nazwa_firmy'];
  3. mysql_real_escape_string($nazwa_firmy);
  4. $zmien_status6 = "UPDATE baza_firm SET status='9' WHERE nazwa='$nazwa_firmy'";
  5. $zmiana6 = mysql_query($zmien_status6);
  6. }


jednak jeśli pojawi się znak & w $nazwa_firmy to zapytanie nie dochodzi do skutku. Jak to rozwiązać? Co dopisać?
melkorm
Jak poprawnie zadać pytanie
matino
  1. $nazwa_firmy = mysql_real_escape_string($nazwa_firmy);
MarcinKostrzewa2
matino niestety tak też nie daje rady sad.gif
melkorm
Zastosuj się do tematu który podałem.
MarcinKostrzewa2
melkorm szukałem w manualu znalazłem mysql_real_escape_string próbowałem różnie i nie daje rady, w google też nie znalazłem pomocy więc pisze tutaj. Nie wiem gdzie widzisz błąd w zadanym przeze Mnie pytaniu Poza tym część manuala PHP napisana jest po angielsku a ja rosyjskiego się uczyłem:/
matino
Skoro zapytanie nie dochodzi do skutku, to pewnie jest jakiś błąd. Pokaż nam ten błąd. A temat wskazany wyżej pokazuje jak to zrobić smile.gif
melkorm
  1. $sql = 'jakieś zapytanie';
  2. echo 'ZAPYTANIE:'.$sql;
  3. mysql_query($sql) or die('BŁĄD:'.mysql_error());


Widzisz różnicę w zadanym pytaniu? Skąd mamy wiedzieć co jest ŹLE skoro nawet nie potrafisz sformułować błędu, który można uzyskać dzięki takiemu zapisowi chociażby, wróżkami nie jesteśmy wink.gif
MarcinKostrzewa2
Nie wyświelta się żaden błąd
  1. if (isset($_POST['nazwa_firmy'])) {
  2. $nazwa_firmy = $_POST['nazwa_firmy'];
  3. $nazwa_firmy = mysql_real_escape_string($nazwa_firmy);
  4. $zmien_status6 = "UPDATE baza_firm SET status='9' WHERE nazwa='$nazwa_firmy'";
  5. echo 'ZAPYTANIE:'.$zmien_status6 ;
  6. mysql_query($zmien_status6 ) or die('BŁĄD:'.mysql_error());
  7. }


gdyby był błąd to bym sobie poradził

na rekordach gdzie nie ma znaku & status zmienia się bez problemu.
melkorm
no to zrób
  1. var_dump($nazwa_firmy);


I zobacz czy się różni od tej w bazie, w dodatku od takich rzeczy masz primaryKey przeciez.
tehaha
to może cofnijmy się do samej logiki - dlaczego chcesz rozróżniać rekordy w bazie przy pomocy kolumny nazwa?, powinno być raczej poprzez kolumnę ID, która jest kluczem podstawowym

A co do Twojego kodu, skoro zapytanie działa, to najwyraźniej nie ma takiego rekordu w bazie, możesz go pobrać i porównać hasze nazwy z bazy i wpisanej aby sprawdzić czy faktycznie wszystkie znaki są identyczne (bo może być tylko wizualnie taki sam)
MarcinKostrzewa2
Z ID też mam cały czas na uwadze to rozwiązanie ale baza jest obszerna prawie 400k rekordów i nie chce wprowadzać kolejnych danych by nie powiększać rozmiaru bazy. Odnośnie tego czy taki rekord istnieje to na 100% tak i jest taki sam, ponieważ tak jak wspomniałem dla wszystkich rekordów oprócz tych zawierających & wszystko działa.

Ogólnie chyba prościej bęzie dla każdego rekordu dodać indywidualne ID
celbarowicz
Ciekawe czy ma to związek z->post:peter13135 25.05.2011
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.