【问题标题】:SQL SELECT tables with PHP使用 PHP 的 SQL SELECT 表
【发布时间】:2016-11-15 23:03:27
【问题描述】:
$sql = "SELECT table_name FROM information_schema.tables WHERE table_type = 'base table' AND table_schema='PPcontent';";
$query = mysqli_query($con, $sql);

while($result = mysqli_fetch_array($query)){
    echo "<option value=\"", $result[0], "\">", $result[0], "</option>";}

我正在尝试了解 mysqli 对象及其工作方式。我有上面的查询,我用它来查找数据库的表名并将它们插入到选择下拉列表中。当我使用类似的代码填充另一个选择下拉列表时,我使用$result['some_row_name'] 在 while 循环运行时获取结果。然后我的 select 语句是 SELECT 'some_row_name from 'some_table' 当我使用上面的 select 语句执行此操作时,我需要使用索引 0 而不是“Table_name”。这是为什么?当我在 PHP MyAdmin 中运行上面的 select 语句时,我得到了一个行名为“Table_name”的表,所以我想我会用它作为索引而不是 0。

【问题讨论】:

  • 请注意,在您的投影中,您有 table_name,因此在结果数组中,您将得到的是 table_name,而不是您所期望的 Table_name
  • 谢谢,我会查看并检查大小写。是不是因为您正在投影一个新表并使用查询“从 information_schema 中选择 table_name ......”来创建行名,所以本质上我可以根据需要将 table_name 设为“foo”或“bar”?
  • 我不记得我是这样做的还是我改变了它。我知道我得到它来做我想做的事。感谢您的帮助!
  • 很高兴我能帮上忙

标签: php mysql


【解决方案1】:

mysql 通常对列名不区分大小写,因此如果该列名为 MYCOLUMN,您可以在 mysql 控制台或使用 php 有效地查询如下

SELECT mycolumn FROM mytable;
SELECT MYCOLUMN from mytable;
SELECT myColumn from mytable;

但是,当您使用 php 的 mysqli_fetch_array 时,您必须使用您在此处查询中使用的确切大小写来访问列数据。这是因为 PHP 在变量名方面是区分大小写的。对于不区分大小写的语言,这无关紧要。

如果您希望列具有完全不同的名称,您可以使用别名

SELECT mycolumn AS some_other_name FROM mytable;

【讨论】:

    猜你喜欢
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 2013-05-28
    • 2014-08-04
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    相关资源
    最近更新 更多