Ben bir Microsoft SQL veritabanı bazı girdileri seçmek için PDO'de bağlayıcı kullanmaya çalışıyorum. Ben belgelerinde buldum ne benzer gibi kod ben görünüyor kullanıyorum. Ben çalıştırmak Ancak, aşağıda uyarı alıyorum:
Uyarı: PDOStatement ::) [pdostatement.execute] (yürütün: sqlstate [42000]: sözdizimi hatası veya erişim ihlali: 1087 [Microsoft] [SQL Native Client] [SQL Server] "P1 @" Tablo değişkeni bildirmeniz gerekir. (SQLExecute [1087] ext \ PDO_ODBC \ odbc_stmt.c at: 254) hattına 40 (uzun dosya yolu) içinde
İşte ilgili kodu bulunuyor:
$table = "[User Site]";
$user = "demo";
$sql = "SELECT * FROM ? WHERE user='?'";
$sth = $db->prepare($sql);
$sth->bindValue(1, $table, PDO::PARAM_STR);
$sth->bindValue(2, $user, PDO::PARAM_STR);
$sth->execute(); // <-- line 40
$data = $sth->fetch(PDO::FETCH_ASSOC);
Bu ilişkili olabilir. (: Tablo: kullanıcı) Ben adlandırılmış parametre işaretleri kullanmak çalıştığınızda yerine soru işaretleri, bu olsun:
Uyarı: PDOStatement :: bindValue () [pdostatement.bindvalue]: sqlstate [HY093]: Geçersiz parametre numarası: parametre satırında (uzun dosya yolu) tanımlı değil 39
Neden benim hazırlanmış deyimi sevmez?