-1

このコードの何が問題なのか、それは私にこれを言いますが、何が悪いのかわかりません:

Error : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE B='achillea_millefolium_credo'' at line 1

これが私のコードです:

(前) 情報: 「$all_db_types_associations['nom_url']」をエコーすると、「B」がエコーされます (私のデータベースの B 列)

「$plante」をエコーすると、「achillea_millefolium_credo」(植物の名前)がエコーされます

$plante_undecoded = htmlspecialchars($_GET["plante"]);
$plante = htmlspecialchars_decode(htmlspecialchars_decode($plante_undecoded));

try
{
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=' .$host .';dbname=plantes', $username, $password, $pdo_options);

    $bdd->query("SET NAMES 'utf8'");

    $pdo = 'SELECT * FROM ' .$current_db_name ." ORDER BY " .$all_db_types_associations['nom_bot'] ." WHERE " .$all_db_types_associations['nom_url'] ."=? ";
    //echo $pdo ." <br />";

    $reponse = $bdd->prepare($pdo);
    $reponse->execute(array($plante));



    while ($donnees = $reponse->fetch())
    {
        //things here...
    }

    $reponse->closeCursor();
}

catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}

MySQL のカラム名が大文字 (「B」) になっているためですか? 他に...何だ?

4

1 に答える 1

1

あなたのORDER BY句はあなたの句の後に来る必要がありますWHERE

SELECT col FROM table WHERE condition ORDER BY col
于 2012-08-01T23:39:07.427 に答える