Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Apostrof w poleceniu SQL
Forum PHP.pl > Forum > Przedszkole
Laran
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();
mar1aczi
htmlentities?
Laran
  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.
nospor
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
Damonsson
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 ^
mar1aczi
Przepraszam, nie doczytałem kodu do końca :|
Laran
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)
nospor
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
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.