A więc mam następujący problem, wczytuje z bazy danych z tabela1 pole ulica (dla osób mieszkających w blokach będzie występował znak "/"), i chce zapisac owe informacje do tabela2 to w phpmyadmin pokazuje mi ze skrypt pomija ten nieszczęsny znak. Co zrobic, żeby ten znak były widoczny w drugiej tabeli ?
Daj przyklad zapytania i wyjasnij co znaczy 'phpmyadmin pokazuje ...'
pozdrawiam
johny
$tabx=$mysql_prefix.'address_book';
$wynikx = mysql_query("select * from $tabx where customers_id like $_SESSION[user]");
while($wierszx = mysql_fetch_array($wynikx))
{
$customers_street_address=$wierszx[entry_street_address];
}
$tabelax=$mysql_prefix.'orders';
$zapytanie1 = "insert into $tabelax values ('$customers_street_address')";
$wynik1 = mysql_query("$zapytanie1");
No i jak w pierwszej tabeli pisze mi Morsk 22d/1
tak w drugiej tabeli po uruchu\omieniu skryptu mam tylko Morska22d1
rozwiązanie, które może by tymczasowe to
$customers_street_address=str_replace("\\"\, " m ", "$customers_street_address");
ale chciałbym jednak aby móc wpisac backslasha do bazy danych.
wafcio napisał(a)
$tabx=$mysql_prefix.'address_book';
$wynikx = mysql_query("select * from $tabx where customers_id like $_SESSION[user]");
while($wierszx = mysql_fetch_array($wynikx))
{
$customers_street_address=$wierszx[entry_street_address];
}
$tabelax=$mysql_prefix.'orders';
$zapytanie1 = "insert into $tabelax values ('$customers_street_address')";
$wynik1 = mysql_query("$zapytanie1");
No i jak w pierwszej tabeli pisze mi Morsk 22d/1
tak w drugiej tabeli po uruchu\omieniu skryptu mam tylko Morska22d1
Pytanko 1:
czy w $customers_street_address jeszcze jest ze znakiem '/', czy juz nie?
Pytanko 2:
czemu nie uzyjesz konstrukcji 'select into ...' albo 'insert into ... select', zeby oszczedzic sobie calej tej petli i wywolywania wielu zapytan, zamiast jednego?
pozdrawiam
johny
ad pyt1
w zmiennej $customers_street_adress jak wpisze
str_replace("\", " m ", "$customers_street_address");
to nie działa, a dziala jak jest tak jak napisałem wyżej
ad pyt2
nie znam takiej konstrukcji, jak to stosowac ? w kursach w internecie nie ma czegos takiego podanego
Ale trzymajmy się głównego mojego problemu
to w końcu się nie da backslasha () czy slasha (/) ??
jak to pierwsze no to chyba nie poddajesz swoich danych escape'owaniu, czyli masz podatność na SQL Injection (jeśli dane do pierwszej tablicy idą od usera):
zamiast:
$something = $whatever;
mysql_query("INSERT blah blah ($something)");
ysz:
$something = mysql_real_escape_string($whatever);
mysql_query("INSERT blah blah ($something)");
Adamo dzięki za pomoc, problem rozwiązany
To mowimy o slashu '/' jak na poczatku czy backslashu ''?
Przetestuj to - powinno dzialac dokladnie jak caly ten kod i ominie klopot z slashem\backslashem:
mysql_query("insert into $mysql_prefix.orders (nazwa_kolumny) select entry_street_address from $mysql_prefix.address_book where customers_id like '$_SESSION[user]'");
//no i nie zdazylem :P
pozdrawiam
johny