Drupal 到 zen cart sql 查询转换

Drupal to zen cart sql query conversion

我正在将 Drupal 模块移植到 Zen Cart,需要转换一些 sql 查询。由于需要转换的项目数量众多,我不能简单地更改一项然后测试我是否正确完成,但我不想全部完成然后发现我在每个项目上都犯了错误。过去我已经为 Zen Cart 移植了一些 OSCommerce,但这是我第一次尝试 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 专家可以确认这是否正确,如果不正确,请指出正确的方向?

大功告成 - 只需调整字段名称并将客户 ID 转换为 int。如果您不想,您也不会 到 SELECT AS - 您可以按原样使用字段名称并在设置数组时更改它们。

函数 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;

}