PDO BindValue не работает — execute ничего не возвращает

У меня большая проблема с pdo, похоже, никто не сможет мне помочь — поэтому я решил спросить вас, ребята 🙂

try {
$links = $database->prepare("SELECT * FROM aTable WHERE visible=:visible AND access<=:access AND category=:category ORDER BY orderNum ASC");
$links->bindValue(':visible',$first,PDO::PARAM_INT);
$links->bindValue(':access',$second,PDO::PARAM_INT);
$links->bindValue(':category',$third,PDO::PARAM_STR);
$links->execute();
print_r($asdf);
print_r($database->errorInfo());
print_r($links->errorInfo());
while($row = $links->fetch(PDO::FETCH_ASSOC)){
print_r($row);
}
} catch (PDOException $e) {
echo $e->getMessage();
}

Database-Connection работает отлично, оба errorInfo () возвращают:

Array
(
[0] => 00000
[1] =>
[2] =>
)

Теперь этот код почему-то не получает $ row. Но если бы я заменил подготовленный оператор следующими строками:

$sql = "SELECT * FROM woody_sidebar WHERE visible=$first AND access<=$second AND category=$third ORDER BY orderNum ASC";
$links = $database->prepare($sql);

(и удалите операторы bindValue) код работает как шарм!

Я понятия не имею, что я делаю неправильно, потому что вообще не выдается никакой ошибки — кто-нибудь из вас знает что-нибудь, что я могу попробовать?

Спасибо

0

Решение

Изменить это:

$links = $database->prepare("SELECT * FROM aTable WHERE visible=:visible AND access<=:access AND category=:category ORDER BY orderNum ASC");
$links->bindValue(':visible',$first,PDO::PARAM_INT);
$links->bindValue(':access',$second,PDO::PARAM_INT);
$links->bindValue(':category',$third,PDO::PARAM_STR);

к этому:

Во втором запросе ваше имя таблицы woody_sidebar но у тебя есть aTable и $ третий — это INT и может быть передан как PDO::PARAM_INT

$links = $database->prepare("SELECT * FROM woody_sidebar WHERE visible=:visible AND access<=:access AND category=:category ORDER BY orderNum ASC");
$links->bindValue(':visible',$first,PDO::PARAM_INT);
$links->bindValue(':access',$second,PDO::PARAM_INT);
$links->bindValue(':category',$third,PDO::PARAM_INT);
0

Другие решения

Единственная проблема, которую я вижу, это имя твоей таблицы.

Попробуйте это вместо

try {
$sql = "SELECT * FROM woody_sidebar WHERE visible=:visible AND access<=:access AND category=:category ORDER BY orderNum ASC";
$links = $database->prepare($sql);
$links->bindValue(':visible', $first, PDO::PARAM_INT); // assuming this is an integer
$links->bindValue(':access', $second, PDO::PARAM_INT); // assuming this is an integer
$links->bindValue(':category', $third, PDO::PARAM_STR); // assuming this is an text string or date
$links->execute();
print_r($asdf);
print_r($database->errorInfo());
print_r($links->errorInfo());
while($row = $links->fetch(PDO::FETCH_ASSOC)){
print_r($row);
}
} catch (PDOException $e) {
echo $e->getMessage();
}

Удачного кодирования!

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector