如何在SQL查询中动态生成表名?
P粉588152636
P粉588152636 2023-09-03 19:57:51
[PHP讨论组]
<p>我有一个 SQL 查询,它使用 MySQL 数据库从中获取信息。表名称是第一个常量,末尾带有不同的 IMEI 编号。</p> <p>gs_object_data_12345678</p> <p>12345678 在我的脚本中被标识为 <code>$_GET</code> 但当我尝试更改表名称时,它不会显示该表中的数据</p> <pre class="brush:php;toolbar:false;">$imei = $_GET['imei']; $result = $db-&gt;query(&quot;SELECT * FROM gs_object_data_'$imei' LIMIT 200 &quot;);</pre> <p>如果我使用下面的字符串,它就可以工作</p> <pre class="brush:php;toolbar:false;">$result = $db-&gt;query(&quot;SELECT * FROM gs_object_data_12345678 LIMIT 200 &quot;);</pre> <p>我需要用<code>$_GET</code>信息更改表名</p> <p>URL <code>alarm_action.php?id=58543&reg=****&imei=862202228007105</code> 中包含 IMEI,因此信息应该可以通过</p>
P粉588152636
P粉588152636

全部回复(1)
P粉232793765

像这样使用

$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();
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号