Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Apostrof w poleceniu SQL
Laran
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 1
Dołączył: 20.03.2013

Ostrzeżenie: (0%)
-----


Witam.

Próbuje wprowadzić string z apostrofem do bazy danych jednak nie wiem gdzie popełniam błąd. Wiem że apostrof można zastąpić dwoma apostrofami, więc w skrócie wygląda to tak:

  1. $z1 = trim($_POST['name']);
  2. $z1 = str_replace("'","''",$z1);
  3.  
  4. $stmt = $mysqli->prepare("INSERT INTO tabela VALUES('".$z1."')");
  5. $stmt->execute();
  6. $stmt->close();


Ten post edytował Laran 20.05.2013, 12:19:56
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
mar1aczi
post
Post #2





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


htmlentities?

Ten post edytował mar1aczi 20.05.2013, 12:21:21


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
Laran
post
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 1
Dołączył: 20.03.2013

Ostrzeżenie: (0%)
-----


  1. $z1 = htmlspecialchars($_POST['name']);
  2.  
  3. $stmt = $mysqli->prepare("INSERT INTO tabela VALUES('".$z1."')");
  4. $stmt->execute();
  5. $stmt->close();


Nadal dostaje błąd:
"Fatal error: Call to a member function execute() on a non-object in [...]"

Kiedy wprowadzam bez apostrofu to działa, więc to w tym leży problem.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Prowadzi głuchy ślepego...

Skoro używasz mysqli to użyj bindowania
http://pl1.php.net/manual/en/mysqli-stmt.bind-param.php
po to je wymyślono

lub escapuj dane
http://pl1.php.net/manual/en/mysqli.real-escape-string.php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Damonsson
post
Post #5





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Ale po co wymyślasz jakieś dziwadła? Stringi bindujesz po prepare i nie ważne jest, czy jest tam apostrof czy ośmiornica.

Edit:
no właśnie, jak wyżej ^

Ten post edytował Damonsson 20.05.2013, 12:28:20
Go to the top of the page
+Quote Post
mar1aczi
post
Post #6





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


Przepraszam, nie doczytałem kodu do końca :|


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
Laran
post
Post #7





Grupa: Zarejestrowani
Postów: 25
Pomógł: 1
Dołączył: 20.03.2013

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 20.05.2013, 13:25:57 ) *
Prowadzi głuchy ślepego...

Skoro używasz mysqli to użyj bindowania
http://pl1.php.net/manual/en/mysqli-stmt.bind-param.php
po to je wymyślono

lub escapuj dane
http://pl1.php.net/manual/en/mysqli.real-escape-string.php


Dziękuję pomogło.

PS. Głuchy może ślepego prowadzić (powinno być "Prowadzi ślepy głuchego":P)
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
PS. Głuchy może ślepego prowadzić (powinno być "Prowadzi ślepy głuchego":P)
No wlasnie się zastanawiałem jaka powinna być kolejnośc no i doszedlem do wniosku jakiego doszedłem.... w każdym bądź razie sens załapany wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 18:52