SQL 即使 mysql Table 中有值,查询也不会返回值
SQL query is not returning values even if there are values in mysql Table
我得到了这个功能:
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'
我的 table 看起来像这样:
账户ID |列
在 accountId = '128'
行,我得到了这样的值 'orderdate,ref-corlido,item-no,partid,item-description,quantity-value,unit-of-measurement,acquisition-value-order-line,sales-value-order-line,markup,due-date,status,direct-delivery,out-of-scope,non-compliant,memo,request-document,documents'
如果我在PHP中手动执行这条SQL语句:
SELECT * FROM `account_columns` WHERE `accountId` = '128'
然后我得到结果..
如果:
,我的代码也会进入这个
if($row != null) {
$this->setColumns($row['columns']);
}
但是 $row['columns'
] 的值是空的。如果我对这个 getter 的视图执行 var_dump 然后我得到空值
如果我将 $row['columns']
) 更改为 :
$this->setColumns($row['accountId']);
然后我得到 128 值..
但是我没有得到列值..怎么会?
因为您只要求结果行中的一列。 :)
你只为 accountId
...
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('');
}
}
P.S.: 你真的应该为 "columns" 列使用另一个名称... :)
查看保留字和关键字列表...不要将它们用于列或 table 名称。 :)
https://dev.mysql.com/doc/refman/5.7/en/keywords.html
祝你有愉快的一天!
祝你好运!
我得到了这个功能:
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'
我的 table 看起来像这样:
账户ID |列
在 accountId = '128'
行,我得到了这样的值 'orderdate,ref-corlido,item-no,partid,item-description,quantity-value,unit-of-measurement,acquisition-value-order-line,sales-value-order-line,markup,due-date,status,direct-delivery,out-of-scope,non-compliant,memo,request-document,documents'
如果我在PHP中手动执行这条SQL语句:
SELECT * FROM `account_columns` WHERE `accountId` = '128'
然后我得到结果..
如果:
,我的代码也会进入这个if($row != null) {
$this->setColumns($row['columns']);
}
但是 $row['columns'
] 的值是空的。如果我对这个 getter 的视图执行 var_dump 然后我得到空值
如果我将 $row['columns']
) 更改为 :
$this->setColumns($row['accountId']);
然后我得到 128 值.. 但是我没有得到列值..怎么会?
因为您只要求结果行中的一列。 :)
你只为 accountId
...
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('');
}
}
P.S.: 你真的应该为 "columns" 列使用另一个名称... :) 查看保留字和关键字列表...不要将它们用于列或 table 名称。 :)
https://dev.mysql.com/doc/refman/5.7/en/keywords.html
祝你有愉快的一天!
祝你好运!