我有一个名为roster_id
的列的mySQL表(在表结构中都是小写的。)我正在尝试在我的php中设置一个变量,并且值没有设置。
$contacts2 = $db->get_results("SELECT * FROM roster WHERE status = 'pending'");
foreach ($contacts2 as $contact2) {
$roster = $contact2->roster_id;
}
$roster
没有设置好,所以我在print_r
上做了$contacts2
,这就是我得到的:
Array
(
[0] => stdClass Object
(
[roster_Id] => 12
[people_id] => 182759
[company_id] => 1
[first_name] => Dennis
[last_name] => Menace
[title] => Test Account
[email] => esther@esthermstrom.com
[address1] => 1105 Test Pkwy
[address2] =>
[city] => Chicago
[state_id] => 13
[country_id] => 183
[zip] => 60613
[phone] => 333-333-3333
[sm] => 1
[lu] => 1
[status] => pending
)
)
roster_id
以roster_Id
的形式返回。知道为什么会这样吗?我可以通过改变php来使用备用拼写来解决它,但如果我不知道是什么原因导致它,我将永远不会有信心它不会突然改变回正确的情况
我不知道它是否有所作为,但我们正在使用ezSQL数据库类。
答案 0 :(得分:3)
如果按原样返回roster_Id,那么它就是这样创建的。在架构中更改它。你说“表结构中的所有小写字母。”但没有说你是如何检索架构的。尝试使用SHOW CREATE TABLE
,然后使用ALTER TABLE
将其缩小。 MySQL不介意:http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html
列,索引和存储的例程名称在任何平台上都不区分大小写,列别名也不区分大小写。
编辑:我为您检查了ez_sql源代码,这是检索结果的方式:
while ( $row = @mysql_fetch_object($this->result) )
{
// Store relults as an objects within main array
$this->last_result[$num_rows] = $row;
$num_rows++;
}
它不是在操纵列。它也不会对你的查询字符串做任何真正邪恶的技巧。不,这是一个相当简单的工具,所以这样的问题只能来自数据库。