ZF-7644: Specific query does not work with $this->getAdapter ()->query($sql);

Description

My sql statement don't work with $this->getAdapter ()->query ($sql). It come with no error but stopping at once!!

But works when i used php mysqli_query.

File /configs/application.ini


;error reporting
    phpSettings.display_startup_errors = 1
    phpSettings.display_errors = 1

;resources.database
    resources.db.adapter = "mysqli"
    resources.db.params.host = "....."
    resources.db.params.dbname = "......"
    resources.db.params.username = "....."
    resources.db.params.password = "....."
    resources.db.params.charset = "utf8"
    resources.db.isDefaultTableAdapter = true

my model file


class tbdkStreetsModel extends Zend_Db_Table_Abstract {
    protected $_name = 'dkStreets';
    function updateRows($data) {
        if (is_array ( $data )) {
            $rs = new tbdkMunicipalityModel ( );
            $sql = 'REPLACE INTO `' . $this->_name . '` (`MunicipalityCode`,`StreetCode`,`StreetName`,`StreetNameForAddressingName`,`StreetFromStreetCode`,`StreetToStreetCode`,`StreetFromMunicipalityCode`,`StreetToMunicipalityCode`) VALUES' . "\n";
            $komma = '';
            foreach ( $data as $value ) {
                $sql .= $komma . '(' . $value ['MunicipalityCode'] . ',' . $value ['StreetCode'] . ',"' . $value ['StreetName'] . '","' . $value ['StreetNameForAddressingName'] . '",';
                if ($value ['StreetFromStreetCode'] == '0000') {
                    $sql .= "NULL,";
                } else {
                    $sql .= $value ['StreetFromStreetCode'] . ',';
                }
                if ($value ['StreetToStreetCode'] == '0000') {
                    $sql .= "NULL,";
                } else {
                    $sql .= $value ['StreetToStreetCode'] . ',';
                }
                if ($value ['StreetFromMunicipalityCode'] == '0000' || !$rs->fetchRow('MunicipalityCode = '. $value ['StreetFromMunicipalityCode'] )) {
                    $sql .= 'NULL,';
                } else {
                    $sql .= $value ['StreetFromMunicipalityCode'] . ',';
                }
                if ($value ['StreetToMunicipalityCode'] == '0000' || ! $rs->fetchRow ('MunicipalityCode = '.$value ['StreetToMunicipalityCode'] )) {
                    
                    $sql .= 'NULL)' . "\n";
                } else{
                    $sql .= $value ['StreetToMunicipalityCode'] . ')' . "\n";
                }
                $komma = ",";
            }
        }
        //
        //$sql .= 'ON DUPLICATE KEY UPDATE StreetName=VALUES(StreetName),StreetNameForAddressingName=VALUES(StreetNameForAddressingName),StreetFromStreetCode=VALUES(StreetFromStreetCode),StreetToStreetCode=VALUES(StreetToStreetCode),StreetFromMunicipalityCode=VALUES(StreetFromMunicipalityCode),StreetToMunicipalityCode=VALUES(StreetToMunicipalityCode);' . "\n";
        //echo ('
' . $sql . '
'); /* $conn = mysqli_connect( '....','.....','.....', '......'); if( mysqli_connect_errno() ) { die( 'Cannot connect to database ' . mysqli_connect_error() ); } mysqli_query($conn, "SET NAMES 'utf8';"); mysqli_query($conn, "SET CHARACTER SET 'utf8';" ); mysqli_query($conn, $sql); if( mysqli_connect_errno() ) { die( 'SQL Error .: ' . mysqli_connect_error() ); } return true; */ return $this->getAdapter ()->query ($sql); } }

Comments

It is hard to decipher what the actual query is that is failing. Also, can you produce an error code or error message?

-ralph