PHP PDO hazırlanan sorgu düzgün yürütmek reddediyor - sorunu kaçan?

1 Cevap php

Ben PDO PHP ile hazırlanmış bir sorgu ile ilgili bir sorun yaşıyorum. Kodu:

$link = new PDO("mysql:dbname=$dbname;host=127.0.0.1",$username,$password);
$link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = $link->prepare("SELECT locality_name FROM :passedday GROUP BY locality_name ORDER BY locality_name DESC");
$query->bindParam(":passedday",$day); //Where day is, well, a day passed to the script elsewhere
$query->execute();
$result = $query->fetchAll();
$link = null;
//Do things with the $result.

Ben alıyorum hata iletisi:

Sqlstate [42000]: sözdizimi hatası veya erişim ihlali: 1064 Kendi SQL sözdizimi bir hata var; line 1 'locality_name DESC locality_name ORDER BY GROUP''' 05_26_09 yakınındaki kullanılacak doğru sözdizimi için MySQL sunucu sürümü karşılık kılavuzunu kontrol

Ben doğrudan sunucu üzerinde sorguyu çalıştırdığınızda, herhangi bir sorun olmadan uygun sonuç kümesi döndürür. Ben ne yapıyorum yanlış Herhangi bir fikir?

TIA.

Edit:

$day, bir GET argüman olarak geçirilir. Bu yüzden, http://127.0.0.1/day.php?day=05_26_09 $day = $_GET['day']; yol açar.

1 Cevap

05_26_09 tablonun adını bahis gerekiyordu ise, o zaman kaçan bir sorun var sanırım. Yerel işletim sistemi canlı sunucudan farklı mı?

Sana bindValue() / bindParam() değerleri (örneğin tablo adı, alan adı) daha başka bir şey için kullanabilirsiniz sanmıyorum. Bu yüzden yerel sisteminizde çalıştığını, sürpriz biraz değilim.