0

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 ステートメントを削除します) コードは魅力的に機能します!

エラーがまったくスローされないため、何が間違っているのかわかりません-あなたの誰かが私が試すことができることを知っていますか?

ありがとう

4

2 に答える 2

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();
}
于 2015-09-13T04:25:04.343 に答える
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);

これに:

2 番目のクエリでは、テーブル名はありwoody_sidebarますがaTable、$ third は であり、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);
于 2015-03-13T19:24:30.963 に答える