Zend Framework Önem düzeyi ihlali: 1241 Operand 1 sütun (lar) içermelidir

3 Cevap php

Ben bir sql sorun var ve ben bunu düzeltmek için nasıl bilmiyorum, ben birkaç şey denedim ama .. burada know.So benim sorgu:

    /**
 * Returns a list with all the months for the archive
 *
 * @return array
 */
public function Archive()
{
 $q = "SELECT DISTINCT MONTH(`data`) AS `month`,YEAR(`data`) AS `year` FROM `posts` ORDER BY `data` DESC";
 $all = $this->fetchAll($q);
 if (count($all) > 0) {
  foreach ($all as $info) {
$months[] = array('month_name'=>$this->months($info['month']),'year'=>$info['year'],'month'=>$info['month']);
  }
  return $months;
 }else{
  return false;
 }
}

Ve Hata:

Ölümcül hata: iletisiyle yakalanmamış istisna 'Zend_Db_Statement_Exception' in 'sqlstate [21000]: Nicelik ihlal 1241 İşlenen 1 sütun (lar) içermelidir'

Herhangi bir yardım?

3 Cevap

Eğer süreçte bir sahne eksik? Aşağıdaki gibi sorgu deyimi satır:

    /**
 * Returns a list with all the months for the archive
 *
 * @return array
 */
public function Archive()
{
 $q = "SELECT DISTINCT MONTH(`data`) AS `month`,YEAR(`data`) AS `year` FROM `posts` ORDER BY `data` DESC";
 $stmt = $db->query($q);
 $all = $stmt->fetchAll(); 
 if (count($all) > 0) {
  foreach ($all as $info) {
$months[] = array('month_name'=>$this->months($info['month']),'year'=>$info['year'],'month'=>$info['month']);
  }
  return $months;
 }else{
  return false;
 }
}

Senin gibi çalışıyordu ama sonunda ben onun yerine bir sorgu dizesi Zend_Db_Select nesnesi kullanarak çözmüştür:

$select =  $this->getDbTable()->select(); // $this->select(); // 
$select->from('gallery', '*');
$select->where('id_category = ?', $id_category);
$select->where('active', 1);

$resultSet = $this->getDbTable()->fetchAll($select);

Düzenlendi: kod biçimlendirme ekranı için girinti.

Ben aynı sorun var. Bu bir Zend Bug gibi görünüyor.

Source: http://framework.zend.com/issues/browse/ZF-3311