Bagaimana untuk menjana nama jadual secara dinamik dalam pertanyaan SQL?
P粉588152636
P粉588152636 2023-09-03 19:57:51
0
1
509
<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粉588152636
P粉588152636

membalas semua(1)
P粉232793765

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();
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan