是否可以从数据库中获取知道列名称的所有值?我有一个这样的数据库:一周中的某一天使用代码编号和一些包含每天信息的行。当用户询问时,我想发送当天的所有信息。
id 1 2 3
1 Info Info Info
2 Info Info Info
到现在为止我有这个:
// I know the know of the column and I want to compare it with the week code
// of today so they can get the info for today
$day=date(w);
$conn = mysqlConnector();
$cols = $conn->prepare('SELECT * FROM cond WHERE COLUMN_NAME = :col LIMIT 1000 OFFSET 1');
$cols->execute(array('col'=> $day));
我不确定是否应该使用COLUMN_NAME或如何使用它,但此代码不起作用。任何的想法?谢谢大家
答案 0 :(得分:2)
您不能将列名用作SQL绑定变量。
从您的问题中不清楚您的列名是什么。 修改它们似乎是1
,2
等。
您可以使用类似这样的SQL语句:
SELECT `1` FROM cond LIMIT 1000 OFFSET 1
要在php中执行此操作,您需要执行以下操作以使用
创建查询`1`
以文字形式插入其中。
$day = 1;
...
$cols = $conn->prepare("SELECT `$day`
FROM cond
WHERE COLUMN_NAME = :col
LIMIT 1000 OFFSET 1");
$cols->execute();
你应该小心这一点;确保$ day的值不会被恶意用户破坏。
您还应该小心确保您的列名称(正好是整数)被反引号包围:
SELECT 1 FROM cond
将返回1的序列,但
SELECT `1` FROM cond
会回馈您的数据。