Comment générer dynamiquement des noms de tables dans les requêtes SQL ?
P粉588152636
P粉588152636 2023-09-03 19:57:51
0
1
526
<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粉588152636
P粉588152636

répondre à tous(1)
P粉232793765

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();
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal