Php Opencart自定义字段不允许连字符-&引用;

Php Opencart自定义字段不允许连字符-&引用;,php,mysql,opencart,opencart2.x,Php,Mysql,Opencart,Opencart2.x,通过遵循本教程,我已成功地将自定义字段(源代码)添加到我的产品中: 但是,我的字段将不允许“-”字符,即使我模拟了允许连字符的“model”字段 例如,如果我输入“408000-025”,则字段将“408000”输入数据库。如果我输入“408000025”,我将在数据库中收到“408000025”。如果我在模型字段中输入“408000-025”,我将收到“408000-025” 模型和源代码(我的自定义字段)都是数据库中的varchar(64)、utf8\u general\u ci字段 以下是

通过遵循本教程,我已成功地将自定义字段(源代码)添加到我的产品中:

但是,我的字段将不允许“-”字符,即使我模拟了允许连字符的“model”字段

例如,如果我输入“408000-025”,则字段将“408000”输入数据库。如果我输入“408000025”,我将在数据库中收到“408000025”。如果我在模型字段中输入“408000-025”,我将收到“408000-025”

模型和源代码(我的自定义字段)都是数据库中的varchar(64)、utf8\u general\u ci字段

以下是我的vqmod:

<file name="admin/model/catalog/product.php">
    <operation>
        <search position="replace"><![CDATA[
        $this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', ean = '" . $this->db->escape($data['ean']) . "', jan = '" . $this->db->escape($data['jan']) . "', isbn = '" . $this->db->escape($data['isbn']) . "', mpn = '" . $this->db->escape($data['mpn']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . (int)$data['tax_class_id'] . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = NOW()");
        ]]></search>
        <add><![CDATA[
        $this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', ean = '" . $this->db->escape($data['ean']) . "', jan = '" . $this->db->escape($data['jan']) . "', isbn = '" . $this->db->escape($data['isbn']) . "', mpn = '" . $this->db->escape($data['mpn']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . (int)$data['tax_class_id'] . "', sort_order = '" . (int)$data['sort_order'] . "', source_code = '" . (int)$data['source_code'] . "', date_added = NOW()");
        ]]></add>
    </operation>
    <operation>
        <search position="replace"><![CDATA[
        $this->db->query("UPDATE " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', ean = '" . $this->db->escape($data['ean']) . "', jan = '" . $this->db->escape($data['jan']) . "', isbn = '" . $this->db->escape($data['isbn']) . "', mpn = '" . $this->db->escape($data['mpn']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . (int)$data['tax_class_id'] . "', sort_order = '" . (int)$data['sort_order'] . "', date_modified = NOW() WHERE product_id = '" . (int)$product_id . "'");
        ]]></search>
        <add><![CDATA[
        $this->db->query("UPDATE " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', ean = '" . $this->db->escape($data['ean']) . "', jan = '" . $this->db->escape($data['jan']) . "', isbn = '" . $this->db->escape($data['isbn']) . "', mpn = '" . $this->db->escape($data['mpn']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . (int)$data['tax_class_id'] . "', sort_order = '" . (int)$data['sort_order'] . "', source_code = '" . (int)$data['source_code'] . "', date_modified = NOW() WHERE product_id = '" . (int)$product_id . "'");
        ]]></add>
    </operation>
</file>
<file name="admin/controller/catalog/product.php">
    <operation>
        <search position="after"><![CDATA[
        $data['entry_sort_order'] = $this->language->get('entry_sort_order');
        ]]></search>
        <add><![CDATA[
        $data['entry_source_code'] = $this->language->get('entry_source_code');
        ]]></add>
    </operation>
    <operation>
        <search position="after"><![CDATA[
        $data['help_isbn'] = $this->language->get('help_isbn');
        ]]></search>
        <add><![CDATA[
        $data['help_source_code'] = $this->language->get('help_source_code');
        ]]></add>
    </operation>
    <operation>
        <search position="before"><![CDATA[
        if (isset($this->request->post['mpn'])) {
        ]]></search>
        <add><![CDATA[
        if (isset($this->request->post['source_code'])) {
             $data['source_code'] = $this->request->post['source_code'];
            } elseif (!empty($product_info)) {
             $data['source_code'] = $product_info['source_code'];
            } else {
             $data['source_code'] = '';
        }
        ]]></add>
    </operation>
</file>
<file name="admin/view/template/catalog/product_form.tpl">
    <operation>
        <search position="after"><![CDATA[
        <div class="tab-pane" id="tab-data">
        ]]></search>
        <add><![CDATA[
        <div class="form-group required">
            <label class="col-sm-2 control-label" for="input-source_code">
                 <span data-toggle="tooltip" title="<?php echo $help_source_code; ?>"><?php echo $entry_source_code; ?></span>
             </label>
             <div class="col-sm-10">
                <input type="text" name="source_code" value="<?php echo $source_code; ?>" id="input-source_code" placeholder="<?php echo $entry_source_code; ?>" class="form-control" />
             </div>
        </div>
        ]]></add>
    </operation>
</file>
<file name="admin/language/english/catalog/product.php">
    <operation>
        <search position="after"><![CDATA[
        $_['entry_recurring']        = 'Recurring Profile';
        ]]></search>
        <add><![CDATA[
        $_['entry_source_code']        = 'Source Code';
        ]]></add>
    </operation>
    <operation>
        <search position="after"><![CDATA[
        $_['help_tag']               = 'comma separated';
        ]]></search>
        <add><![CDATA[
        $_['help_source_code']        = 'ACS Billing Code';
        ]]></add>
    </operation>
</file>

数据库->查询($this->db->escape($data['model'])。“,$this->db->escape($data['sku'])。”,upc=“,$this->db->escape($data['upc'])。”,ean=“$this->db->escape($data['ean'])。”,jan=“,$this->db->escape($data['jan'])。”,isbn=“$this->db->escape($data['isbn'])。“,mpn=”,“$this->db->escape($data['mpn'])。”,location=”,“$this->db->escape($data['location'])。”,quantity=”,(int)$data['quantity'.”,minimum=”,(int)$data['minimum'.'”,subtract=“,(int)$data['subtract'.'。”,stock\u status\u id=”,(int)$data['stock\u status\u id'。”,date可用日期=“$this db->escape($data=”“(int)$data['weight']。”(int)$data['weight']。”(int)$data['shipping']。”,price='”(float)$data['price']。”,points='“(int)$data['points']。”(float)$data['weight']。“(float)$data['weight']。”,weight''classed'.'。”(int)$data['weight''classed']。“(float)$data['weight'](float)$data['height']。(float)$data['height']。“(float)$data['height']。”,length_class_id=”(int)$data['length_class_id']。“(int)$data['length_class_id']。”(int)$data['tax_class_id']。“(int)$data['tax_class_id']。”,sort_order=”(int)$data['sort_class_order']。“(int)$data['sort_order']。”,date added=NOW()”;
]]>
数据库->查询($this->db->escape($data['model'])。”,sku='“$this->db->escape($data['sku'])。”,upc='”。“$this->db->escape($data['upc'])。”,ean='“$this->db->escape($data['ean'])。”,jan='”,jan=“$this->db->escape($data['jan'])。”,isbn='。“$this->db->escape($data['isbn'])“,mpn=”,“$this->db->escape($data['mpn'])。”,location=”,“$this->db->escape($data['location'])。”,quantity=”,“(int)$data['quantity'.”,minimum=”,“(int)$data['subtract'.”,“(int)$data['subtract']。”,stock\u status\u id=”,(int)$data['stock\u status\u id'.”,date可用日期=”,“$this db->escape($this=”“(int)$data['weight']。”(int)$data['weight']。”(int)$data['shipping']。”,price='”(float)$data['price']。”,points='“(int)$data['points']。”(float)$data['weight']。“(float)$data['weight']。”,weight''classed'.'。”(int)$data['weight''classed']。“(float)$data['weight']“,”,width=”,“(float)$data['width']。”,“(float)$data['height']。”,length_class_id=”,“(int)$data['length_class_id']。”,status=“(int)$data['status']。”,tax_class_id=”,“(int)$data['tax_class_id']。”,sort_order=”,sort_order=“(int)$data['sort"排序顺序=”,源代码=“。”“,date_added=NOW()”;
]]>
数据库->查询(“更新”.db_前缀.”产品集模型=“$this->db->escape($data['model'])。”,sku=“$this->db->escape($data['sku'])。”,upc=“$this->db->escape($data['upc'])。”,ean=“$this->db->escape($data['ean'])。”,jan=““$this->db->escape($data['jan'])。”,isbn=“$this->db->db->escape($data['isbn'])。”“,mpn=”,“$this->db->escape($data['mpn'])。”,location=”,“$this->db->escape($data['location'])。”,quantity=”,“(int)$data['quantity'.”,minimum=”,“(int)$data['subtract'.”,“(int)$data['subtract']。”,stock\u status\u id=”,(int)$data['stock\u status\u id'.”,date可用日期=”,“$this db->escape($this=”“(int)$data['weight']。”(int)$data['weight']。”(int)$data['shipping']。”,price='”(float)$data['price']。”,points='“(int)$data['points']。”(float)$data['weight']。“(float)$data['weight']。”,weight''classed'.'。”(int)$data['weight''classed']。“(float)$data['weight'](float)$data['width']。(float)$data['height']。“(float)$data['height']。”,length_class_id='。“(int)$data['length_class_id']。”,status=”(int)$data['status']。”(int)$data['tax_class_id']。“(int)$data['tax_class_id']。”,sort_order='(int)$data['sort_class_order']。(int)$data['sort"排序顺序='。(int)$data['sort"排序"排序"排序顺序'。”,日期(修改后$product_id.“'”;
]]>
数据库->查询(“更新”.db_前缀.”产品集模型=“$this->db->escape($data['model'])。”,sku=“$this->db->escape($data['sku'])。”,upc=“$this->db->escape($data['upc'])。”,ean=“$this->db->escape($data['ean'])。”,jan=““$this->db->escape($data['jan'])。”,isbn=“$this->db->db->escape($data['isbn'])。”“,mpn=”,“$this->db->escape($data['mpn'])。”,location=”,“$this->db->escape($data['location'])。”,quantity=”,“(int)$data['quantity'.”,minimum=”,“(int)$data['subtract'.”,“(int)$data['subtract']。”,stock\u status\u id=”,(int)$data['stock\u status\u id'.”,date可用日期=”,“$this db->escape($this=”“(int)$data['weight']。”(int)$data['weight']。”(int)$data['shipping']。”,price='”(float)$data['price']。”,points='“(int)$data['points']。”(float)$data['weight']。“(float)$data['weight']。”,weight''classed'.'。”(int)$data['weight''classed']。“(float)$data['weight'].“,宽度=