Pourquoi mon programme ne trouves pas la table dans la BDD ?

Fermé
SuperRobot Messages postés 26 Date d'inscription jeudi 13 juin 2019 Statut Membre Dernière intervention 20 juillet 2019 - 15 juin 2019 à 18:45
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 15 juin 2019 à 20:07
Bonjour, j'ai un petit bout de programme qui permet de détecter si une table existes dans la BDD.
J'aimerais savoir pourquoi même quand une table existes, ce programme me dit que cette table n'existes pas.
Peut-être que c'est à cause des back quotes autour du "?" mais si je ne mets pas ces back quotes et que la table contient des caractères comme "-", ça ne marchera pas...

$db = new PDO('mysql:host=localhost;dbname=files_v3', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    try
    {
        $test_req = $db->prepare('SELECT COUNT(ID) AS test_req FROM `files_v3`.`?`');
        $test_req->execute(array($file_name));
        echo 'yes';
    }
    catch(Exception $e)
    {
        if(strpos($e, 'PDOException: SQLSTATE[42S02]') === 0)
        {
            echo 'no';
        }
        echo $e;
    }


Cordialement.

1 réponse

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
15 juin 2019 à 19:09
bonjour, je ne pense pas que tu puisses ainsi faire varier le nom de la table dans une requête préparée.
moi j'essaierais
$sql = "SELECT COUNT(*) FROM " . $file_name ;
$reponse = $db->query($sql);
if ($reponse)
    echo "la table existe";
else
    echo "oups";
0
SuperRobot Messages postés 26 Date d'inscription jeudi 13 juin 2019 Statut Membre Dernière intervention 20 juillet 2019
15 juin 2019 à 19:31
Est-ce sécurisé ?...
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > SuperRobot Messages postés 26 Date d'inscription jeudi 13 juin 2019 Statut Membre Dernière intervention 20 juillet 2019
15 juin 2019 à 20:07
sécurisé contre quoi? quel est le risque si le SELECT se fait attaquer?
as-tu essayé?
0