我为PrestaShop 1.6创建了一个模块。我无法在表中获取此模块创建的列。我不知道可能出错了什么。 '$ fields'只占用最后一列。 '$ result'没问题。好像PHP没有创建索引。
public function getNewDescriptionFields()
{
$db = Db::getInstance();
if(!$db)
return false;
$result = $db->ExecuteS('SHOW COLUMNS FROM '. _DB_PREFIX_ .'product_lang');
if(!$result)
return false;
$fields = array();
foreach($result as $key => $field);
{
$fields[] = $field['Field'];
}
file_put_contents('/home/www/test4', var_export($fields, true));
file_put_contents('/home/www/test3', var_export($result, true));
$fields = preg_grep("/desc([0-9]?[0-9])_(name|text)/", $fields);
return $fields;
}
从test3(部分):
19 =>
array (
'Field' => 'desc4_text',
'Type' => 'text',
'Null' => 'YES',
'Key' => '',
'Default' => NULL,
'Extra' => '',
),
20 =>
array (
'Field' => 'desc5_name',
'Type' => 'varchar(64)',
'Null' => 'YES',
'Key' => '',
'Default' => NULL,
'Extra' => '',
),
21 =>
array (
'Field' => 'desc5_text',
'Type' => 'text',
'Null' => 'YES',
'Key' => '',
'Default' => NULL,
'Extra' => '',
),
22 =>
array (
'Field' => 'desc6_name',
'Type' => 'varchar(64)',
'Null' => 'YES',
'Key' => '',
'Default' => NULL,
'Extra' => '',
),
23 =>
array (
'Field' => 'desc6_text',
'Type' => 'text',
'Null' => 'YES',
'Key' => '',
'Default' => NULL,
'Extra' => '',
从test3开始:
array ( 0 => 'desc6_text', )
答案 0 :(得分:3)
你正在使用;在foreach循环结束时,循环体最终在第一个;所以请删除它。 对于foreach,代码应该是这样的
foreach($result as $key => $field)
{
$fields[] = $field['Field'];
}