mysql - 如何使用用户提交的变量进行查询并保存?

标签 mysql sql database stored-procedures mysql-workbench

我是一个数据库菜鸟。
我正在构建一个包含大量属性的数据库。
我想让属性(property)所有者(用户)可以通过仅调用函数/存储例程/存储过程/准备语句(我用谷歌搜索它们)将他/她的属性(property)提交到我的 property 表,但很难弄清楚我在找什么)。

这是我的插入查询代码:

INSERT INTO property
(property_owner_id, property_type_id, address, zip_code, area_m2, price_€)
VALUES
(/* Owner ID */,/* Property Type ID */,/* Address */,/* Zip Code */,/* Area */,/* Price */);

所以我想创建一个类似 submit 函数的东西,我可以存储它。 然后,业主只需要做类似的事情:

submit(his id, his property's type, address, zip code, area, price)

我正在搜索答案,我看到了带有“@”的东西,但有时我没有。
我也不太了解整个“函数/存储例程/存储过程/准备好的语句”。
它似乎也随着语言的变化而变化。
在某些示例中,我需要事先设置变量/参数。在其他人中我没有。

我刚开始学习 SQL。我知道数据库的一般工作原理。
我知道如何创建表、更新表、插入数据、创建主键和外键。
我知道如何使用连接、左连接、交叉连接等以及 where、having、order by、group by 等命令查询数据。
但就目前而言,我真的不明白如何制作一个可重用的代码块,我可以在其中调用它的名称,并仅插入变量/参数。

如果有帮助,我正在使用带有 UwAmp 的 MySQL Workbench 6.2.5。

谢谢!

最佳答案

您可能已经了解了存储过程,但也许这 link很有帮助。

针对您的问题: 您需要一个在调用时可以接受参数的过程。

CREATE PROCEDURE addtoproperty(
    IN ownerid INT,
    IN propertytype INT,
    IN adress VARCHAR,
    IN zipcode INT,
    IN area VARCHAR,
    IN price DECIMAL(15,2)      
)
BEGIN
    INSERT INTO property
        (property_owner_id, property_type_id, address, zip_code, area_m2, price_€)
    VALUES
        (ownerid,propertytype, adress, zipcode, area, price);
END;

您可以将此过程与以下语句一起使用。这次您需要将文本替换为具有实际值的文本。所以 ownerid 类似于 12345。

CALL addtoproperty(ownerid,propertytype, adress, zipcode, area, price);

关于mysql - 如何使用用户提交的变量进行查询并保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55451740/

相关文章:

php - 一次查询查询2个数据库

php - 提交表单时查询为空

MYSQL:根据另一列创建唯一 ID

php - 允许用户使用 mysql php 重新排列表数据

database - 如何连接来自两个不同数据库的两个表?

mysql - rake db:migrate - Mysql2::错误:表 'database_development.locations' 不存在:显示 `locations` 中的完整字段

php - 如何在插入数据库之前验证数据是否满足特定条件

mysql - 从两个表中选择一行的最大值

sql - 在SQLite中将术语排除在GROUP BY之外?

php - 如何根据一天(而不是日期)过滤集合?