Nasıl oracle sorgu çift tırnak kaçış?

4 Cevap php

Ben çift tırnak kehanet tabloda bazı metin alanları var. PHP kullanabilirsiniz böylece, bir seçme sorgusu onları kaçmak için nasıl?

4 Cevap

Bir yapmak gerekir

SELECT REPLACE(your_column, '"', '\"') AS your_escaped_column
FROM your_table;

Eğer bir SQL Injection güvenlik açığı ile ilgileniyor, bu yapmak için çalışıyoruz Oran vardır. Bu, Google ve ne yaptığını düşün.

Denedim: "\" "

Peki ... Eğer sadece başka herhangi bir alan gibi onları seçmek istiyorum. Eğer onları kaçmak için ihtiyaç veritabanına şeyleri in koyarak zaman var.

İşte ne veritabanı soyutlama katmanı veya kullandığınız sürücüye bağlı olarak farklı mekanizmalar vardır.

Sürücüler için, ben PDO'yu öneririz. Bu şekilde, bu her zaman böyle bir şey olacak girişi için bir alan kaçan, kullanmakta olduğunuz veritabanı farketmez:

// Assuming that $dbh is a valid PDO object, like this one:
// $dbh = new PDO('oci:dbname=//hostname:1521/scott', 'scott', 'tiger');
// That's 'oci:dbname=//hostname:port-number/database', username, password

$sql = "SELECT * FROM myTable WHERE name = ':myName'";
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':myName' => "Ed O'Neil"));