Bir süre önce SQL Server veritabanlarına ve aynı zamanda MySQL veritabanlarına bağlanmak için PDO kullanan bir veritabanı sınıfı yazdı. Her zaman MySQL veritabanlarının kullanırken soru ince işaretler yerini aldı, ancak SQL Server veritabanı için temelde elle soru işaretleri yerine hangi etrafında bir eser yaratmak vardı. İşte bunun için kodudur.
if($this->getPDODriver() == 'odbc' && !empty($values_a) && substr_count($query_s, "?") > 0) {
$query_s = preg_replace(array_fill(0, substr_count($query_s, "?"), '/\?/'), $values_a, $query_s, 1);
$values_a = NULL;
}
Şimdi, bu tamamen soru işaretleri ve PDO amacı yendi anlıyorum, ama benim için iyi çalışıyor olmuştur. Ne şimdi yapmak istiyorum ama, soru işaretleri ilk etapta yerini almak değil, nedenini bulmak ve bu geçici çözüm kaldırmak olduğunu.
Ben aşağıdaki gibi bir deyim varsa
SELECT * FROM database WHERE value = ?
İşte bunu hazırlamak için gittiğinizde sorgu benzediğini, ama sorgu sonuçlarını görüntülemek ne zaman, boş bir dizidir.
Sadece bu sınıf MySQL ile iyi çalışıyor, ve çevresinde yukarıdaki çalışma ile iyi çalışıyor, unutmayın. Bu yüzden soru işaretleri ile ilgili bir şey var biliyorum.