我得到了这个功能:
private function _loadColumnRights() {
$db = Zend_Registry::get('db');
// Create the select query
$select = $db->select()
->from('account_columns', array(
'accountId'
))
->where('accountId = ?', $this->getId());
// Fetch the data
$row = $db->fetchRow($select);
if($row != null) {
$this->setColumns($row['columns']);
}
else {
$this->setColumns('');
}
}
我搜索
accountID = '128'
我的桌子看起来像这样:
accountId |列
在与
accountId = '128'
的行中,我得到了这样的值:“订单日期,ref-corlido,项目编号,partid,项目描述,数量值,计量单位,获取值订单行,销售-价值订单行,标记,过期日期,状态,直接交付,范围外,不符合规定,备忘,请求文档,文档'如果我在PHP中手动执行此SQL语句:
SELECT * FROM `account_columns` WHERE `accountId` = '128'
然后我得到结果。
如果:
if($row != null) {
$this->setColumns($row['columns']);
}
但是
$row['columns'
]的值是空的。如果我在此吸气剂的视图上执行var_dump,则会得到空值如果我将
$row['columns']
更改为:$this->setColumns($row['accountId']);
然后我得到128的值。
但是我没有列值。
最佳答案
因为您只要求结果行中的一列。 :)
您仅将accountId
作为k ...
private function _loadColumnRights() {
$db = Zend_Registry::get('db');
// Create the select query
$select = $db->select()
// THERE IS YOU ERROR :)
// THE SECOND PARAMETER IS AN ARRAY OF RESULT COLUMNS
->from('account_columns', array(
//'accountId', <-- Your error :)
'*' // use this if you want all columns back
//'columns' // or add this column name
))
->where('accountId = ?', $this->getId());
// Fetch the data
$row = $db->fetchRow($select);
if($row != null) {
$this->setColumns($row['columns']);
}
else {
$this->setColumns('');
}
}
附注:您确实应该在“栏”列中使用其他名称... :)
查看保留字和关键字的列表...不要将它们用于列名或表名。 :)
https://dev.mysql.com/doc/refman/5.7/en/keywords.html
祝你有美好的一天!
祝好运!
关于php - 即使mysql表中有值,SQL查询也不返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44671029/