recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment générer dynamiquement des noms de tables dans les requêtes SQL ?

<p>J'ai une requête SQL qui utilise une base de données MySQL pour en extraire des informations. Le nom de la table est la première constante avec un numéro IMEI différent à la fin. </p> <p>gs_object_data_12345678</p> <p>12345678 est identifié dans mon script comme <code>$_GET</code> mais lorsque j'essaie de modifier le nom de la table, il n'affiche pas les données de cette table</p> <pre class="brush:php;toolbar:false;">$imei = $_GET['imei']; $result = $db->query("SELECT * FROM gs_object_data_'$imei' LIMIT 200 ");</pre> <p>Si j'utilise la chaîne suivante, cela fonctionne</p> <pre class="brush:php;toolbar:false;">$result = $db->query("SELECT * FROM gs_object_data_12345678 LIMIT 200 ");</pre> <p>Je dois changer le nom de la table avec <code>$_GET</code>information</p> L'<p>URL <code>alarm_action.php?id=58543®=****&imei=862202228007105</code> contient l'IMEI, les informations doivent donc passer par </p>
P粉588152636P粉588152636436 Il y a quelques jours496

répondre à tous(1)je répondrai

  • P粉232793765

    P粉2327937652023-09-04 10:39:04

    Utilisez comme ça

    $imei = $_GET['imei'];
    $result = $db->query("SELECT * FROM gs_object_data_" . $imei . " LIMIT 200 ");

    ou

    $result = $db->query("SELECT * FROM gs_object_data_{$imei} LIMIT 200 ");

    De manière protégée

    $imei = $_GET['imei'];
    
    $stmt = $db->prepare("SELECT * FROM gs_object_data_? LIMIT 200");
    $stmt->bind_param("s", $imei);
    $stmt->execute();
    
    $result = $stmt->get_result();

    répondre
    0
  • Annulerrépondre