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
Posted by Ralph Schindler (ralph) on 2009-08-20T06:03:53.000+0000
It is hard to decipher what the actual query is that is failing. Also, can you produce an error code or error message?
-ralph