从MySQL拉

时间:2019-02-21 03:17:54

标签: php mysql

我正在尝试从MySQL中拉出,但是无法正确地从正确的字段中拉出字符串。

它从错误的位置拉出。当前来自(catalog_product_entity_media_gallery_value_video),并且应该从(catalog_product_entity_varchar) (attribute id 147)提取视频,这给出了数据库中正确存储的URL的值。不确定什么是正确的代码字符串。

这是我的代码:

$sql = "SELECT url FROM catalog_product_entity_media_gallery_value_video where value_id= ".$product_data['entity_id']." ";
$video_url = $connection->fetchOne($sql);

我正在尝试此操作,但必须包含174的“ attribute_id”才能提取正确的“值”并在数据库中获取URL。

这是我的代码:

$sql = "SELECT url FROM catalog_product_entity_varchar where value_id= ".$product_data['value']." ";
$video_url = $connection->fetchOne($sql);

关于如何在此字符串中添加174的attribute_id的附加信息,以便能够提取存储在值字段中的URL。.

Current code Image

Current Database fields

感谢PRiZM。

1 个答案:

答案 0 :(得分:0)

跳过有关SQL注入的问题,让我告诉您如何在Magento数据库中使用EAV Design。

1:表product_entity中有主entity_id,,而entity_type_id = 4(产品实体类型= 4)

2:使用该表的表eav_attribute,您将得到attribute_codeattribute_id

3:您键入这些属性值的catalog_product_entity_varchar是'text'或'varchar'。

EAV design

当您需要获取产品属性的值时,需要什么。 1:attribute_code ==> attribute_id

2:attribute_id => attribute_values

3:产品product_id =>产品属性的值

示例SQL:

select v.value from 
    catalog_product_entity_varchar where attribute_id = [attirbute-id] 
    and entity_id = [product entity id]

更新

  • 通过SQL注入安全性,您应该使用$connection->quote([value])

  • 您应该使用Magento的默认模型来处理数据库。

  • 尝试研究获取特定产品属性值的方法。