如何在SQLite3中搜索列名?实现列名与变量的对比
解决SQLite3列名与变量对比的问题
我懂你的困扰!你已经能通过PRAGMA table_info拿到表的列名,但不知道怎么把这些列名和自己的变量做对比对吧?其实很简单,咱们先把所有列名存到一个数组里,之后用数组检查函数就能轻松判断啦。
下面是修改后的完整代码示例:
$bd = new SQLite3('my_datebase.db'); // 获取表的列信息 $stmt = $bd->query("PRAGMA table_info(tblLecturacion);"); // 初始化空数组存储所有列名 $columnNames = []; // 循环遍历结果,把每个列名存入数组 while ($row = $stmt->fetchArray(SQLITE3_ASSOC)) { $columnNames[] = $row['name']; } // 假设这是你要对比的目标变量 $targetColumn = "你的目标列名变量"; // 用in_array判断变量是否在列名数组中 if (in_array($targetColumn, $columnNames)) { echo "找到列:{$targetColumn}"; } else { echo "未找到列:{$targetColumn}"; }
关键细节说明:
- 换成普通
while循环遍历结果更稳妥,能避免do-while可能出现的第一条数据漏处理问题 - 如果需要严格区分大小写匹配,可以给
in_array()添加第三个参数true,写成in_array($targetColumn, $columnNames, true) - 存好列名数组后,后续不管要对比多少个变量,直接复用这个数组就行,不用重复查询数据库
这样你就能轻松完成列名和变量的对比啦!
内容的提问来源于stack exchange,提问作者Alv Raf Alc Mir
相关产品推荐
相关产品推荐

