Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menjana nama jadual secara dinamik dalam pertanyaan SQL?

<p>Saya mempunyai pertanyaan SQL yang menggunakan pangkalan data MySQL untuk mendapatkan maklumat daripadanya. Nama jadual ialah pemalar pertama dengan nombor IMEI yang berbeza pada penghujungnya. </p> <p>gs_object_data_12345678</p> <p>12345678 dikenal pasti dalam skrip saya sebagai <code>$_GET</code> tetapi apabila saya cuba menukar nama jadual, ia tidak memaparkan data daripada jadual itu</p> <pre class="brush:php;toolbar:false;">$imei = $_GET['imei']; $result = $db->query("SELECT * FROM gs_object_data_'$imei' LIMIT 200 ");</pre> <p>Jika saya menggunakan rentetan berikut ia berfungsi</p> <pre class="brush:php;toolbar:false;">$result = $db->query("PILIH * DARI gs_object_data_12345678 LIMIT 200 ");</pre> <p>Saya perlu menukar nama jadual dengan <kod>$_GET</kod>maklumat</p> <p>URL <code>alarm_action.php?id=58543®=****&imei=862202228007105</code> mengandungi IMEI, jadi maklumat harus tersedia melalui </p>
P粉588152636P粉588152636383 hari yang lalu456

membalas semua(1)saya akan balas

  • P粉232793765

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

    Guna macam ni

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

    atau

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

    Dengan cara yang dilindungi

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

    balas
    0
  • Batalbalas