Drupal в Zen Cart преобразование SQL-запросов

Я нахожусь в процессе портирования модуля Drupal на Zen Cart и мне нужно конвертировать некоторые sql запросы. Из-за количества элементов, которые необходимо преобразовать, я не могу просто поменять один элемент, а затем проверить, правильно ли я это сделал, но я не хочу делать их все, а потом обнаружил, что допустил ошибку по каждому элементу. В прошлом я проделал довольно много OSCommerce с портами Zen Cart, но это моя первая попытка использовать порт Drupal.

Оригинальный код Drupal

function getCustomerData($customerId) {

$sql = "SELECT " . $this->fields['customer_firstname'] . " AS firstname, " .
$this->fields['customer_lastname'] . " AS lastname, " .
$this->fields['customer_email'] . " AS email" .
" FROM " . $this->tables['customers'] .
" WHERE " . $this->fields['customer_id'] . " = '$customerId'";

$query = $this->dbQuery($sql);

if ($this->dbNumRows($query)) {
$row = $this->dbFetchArray($query);
$customerData = array(
'firstname' => $row['firstname'],
'lastname'  => $row['lastname'],
'email'     => $row['email']
);

} else {
$customerData = false;
}

return $customerData;
}

Моя лучшая догадка в преобразованном коде будет

function getCustomerData($customerId) {
global $db;

$query = $db->Execute("SELECT customers_firstname AS firstname, customers_lastname AS lastname, customers_email AS email
FROM " . TABLE_CUSTOMERS . "WHERE customers_id = ". $customerId ."");

if ($query->RecordCount()){
$customerData = array(
'firstname' => $query->fields['firstname'],
'lastname'  => $query->fields['lastname'],
'email'     => $query->fields['email']
);

} else {
$customerData = false;
}

return $customerData;
}

Любые эксперты по Drupal и Zen Cart, которые могут подтвердить, что это правильно, или указать мне правильное направление, если это не так?

0

Решение

Вы близки — просто измените имена полей и приведите идентификатор клиента как int. Вы также не иметь ВЫБРАТЬ КАК, если вы не хотите — вы можете просто использовать имена полей, как они есть, и изменять их при настройке массива.

function getCustomerData ($ customerId) {
глобальный $ db;

$query = $db->Execute("SELECT customers_firstname, customers_lastname, customers_email_address
FROM " . TABLE_CUSTOMERS . "WHERE customers_id = '". (int)$customerId ."'");

if ($query->RecordCount()){
$customerData = array(
'firstname' => $query->fields['customers_firstname'],
'lastname'  => $query->fields['customers_lastname'],
'email'     => $query->fields['customers_email_address']
);

} else {
$customerData = false;
}

return $customerData;

}

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]