mysqli_real_escape_string() w sqlite3

0

Jaki jest (mam nadzieję, że jest) zamiennik** mysqli_real_escape_string()** w sqlite? Taki który działa z PDO

0

http://php.net/manual/en/mysqli.real-escape-string.php
Mówi:
Note unlike PDO string escape, MySQLi does not include apostrophes.

So, you probably want something like this:

function escape($s){
    $s = $this->mysqli->real_escape_string($s);
    return "'$s'";
}
0

@Marcin.Miga: a jak to zastosować podobnie do tego
query(sprintf("SELECT %s FROM %s", mysqli_real_escape string($polaczenie, $zmienna1,mysqli_real_escape string($polaczenie, $zmienna2))) tylko w sqlite?

tak samo tylko zamiast mysqlirealescape... wpisać $db->escape($value1), $db->escape($value2) ?

0

Użyj zmiennych pomocniczych. Kod ładniejszy, łatwiej się debuguje...

$zmienna1=sqlite_escape_string($zmienna1);
$zmienna2=sqlite_escape_string($zmienna2);
$sql=sprintf("SELECT %s FROM %s", $zmienna1, $zmienna2);
$return = sqlite_query($sql);
0

@Marcin.Miga: Uncaught Error: Call to undefined function sqlite_escape_string() :-(

0

php_info()

1

@Marcin.Miga: chyba phpinfo(); zaraz wyśle, ale czy to nie ejst tak, że jak używam pdo to te ssqlite_funkcje nie działają?
@mefsh: co? To miało być zabezpieczenie przed sql injection wcześniej jest htmlentities(), ale wg. kursu warto dodać też sprintf.

0

@CodeRZ: Bindowanie parametrów jest zabezpieczeniem przeciwko sql injection.

0

Zrobiłem, czy jest bezpiecznie?

$login = htmlentities($login, ENT_QUOTES, "UTF-8");
    $password = htmlentities($password, ENT_QUOTES, "UTF-8");
  
	
	$sql2 = 'SELECT * FROM Users WHERE Name= :login AND Password= :password';
    $stmt = $db->prepare($sql2);
    $stmt->bindParam('login', $login);
    $stmt->bindParam('password', $password);
    $stmt->execute();

1 użytkowników online, w tym zalogowanych: 0, gości: 1