Heim  >  Fragen und Antworten  >  Hauptteil

Wie generiert man Tabellennamen in SQL-Abfragen dynamisch?

<p>Ich habe eine SQL-Abfrage, die eine MySQL-Datenbank verwendet, um Informationen daraus abzurufen. Der Tabellenname ist die erste Konstante mit einer anderen IMEI-Nummer am Ende. </p> <p>gs_object_data_12345678</p> <p>12345678 wird in meinem Skript als <code>$_GET</code> identifiziert, aber wenn ich versuche, den Tabellennamen zu ändern, werden die Daten aus dieser Tabelle nicht angezeigt</p> <pre class="brush:php;toolbar:false;">$imei = $_GET['imei']; $result = $db->query("SELECT * FROM gs_object_data_'$imei' LIMIT 200 ");</pre> <p>Wenn ich die folgende Zeichenfolge verwende, funktioniert es</p> <pre class="brush:php;toolbar:false;">$result = $db->query("SELECT * FROM gs_object_data_12345678 LIMIT 200 ");</pre> <p>Ich muss den Tabellennamen mit <code>$_GET</code>information</p> ändern. Die <p>URL <code>alarm_action.php?id=58543®=****&imei=862202228007105</code> enthält die IMEI, daher sollten die Informationen über </p> verfügbar sein.
P粉588152636P粉588152636383 Tage vor453

Antworte allen(1)Ich werde antworten

  • P粉232793765

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

    像这样使用

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

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

    以受保护的方式

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

    Antwort
    0
  • StornierenAntwort