gpt4 book ai didi

mysql - 仅当 TABLE EXIST 时才执行 SELECT 查询

转载 作者:行者123 更新时间:2023-11-30 23:20:21 26 4
gpt4 key购买 nike

我正在开发一个 Joomla 模块,可以在其中显示图像并将图像链接到 Joomla 文章、Virtuemart 产品或外部链接。

为了能够选择 Virtuemart 产品,我在模块 list xml 中添加了以下参数:

<field 
name="image_1_product"
type="sql"
default="10"
query="SELECT #__virtuemart_products.virtuemart_product_id, #__virtuemart_products_en_gb.product_name
FROM #__virtuemart_products, #__virtuemart_products_en_gb
WHERE #__virtuemart_products.virtuemart_product_id = #__virtuemart_products_en_gb.virtuemart_product_id
AND #__virtuemart_products.published = 1"
key_field="virtuemart_product_id"
value_field="product_name"
label="LABEL_PRODUCT"
description="DESC_PRODUCT">
</field>

当安装 Virtuemart 时,这工作得很好。未安装 Virtuemart 时,您会收到“未知列”错误 - 这是有道理的。

因为这是一个模块 list 选项,所以我只能使用 1 个查询。有没有办法运行一个查询,在执行选择之前检查表是否存在?喜欢:

IF EXISTS TABLE `table_a` (SELECT * FROM table_a)

如果是这样,它能返回这样一行吗:

|编号 |值(value) |

| 0 |未找到 Virtuemart |

谢谢!

最佳答案

恐怕仅通过单个数据库查询是不可能的。

我能想到的唯一解决方法是为您的模块创建一个参数助手,并使用 addfieldpath 到您的模块 fieldset 标记。使用此解决方案,您可以编写一个方法来执行查询并创建输出,然后您可以在创建参数之前检查表是否存在。

例如:

<config>
<fields name="params">
<fieldset name="basic" addfieldpath="/modules/mod_mymodule/elements/">
<field name="image_1_product" type="product" default="10" label="LABEL_PRODUCT" description="DESC_PRODUCT"/>
</fieldset>
</fields>
</config>

现在在 /modules/mod_mymodule/elements/ 中创建一个名为 product.php 的 PHP 文件,并按照 Joomla 文档中的描述编写您的自定义查询和字段描述。

Joomla 文档可用于 Custom parameter typesCreating custom template parameter types

关于mysql - 仅当 TABLE EXIST 时才执行 SELECT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15799836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com