首页 > 解决方案 > MYSQL 用 select 插入值

问题描述

我正在尝试插入这样的值:

$sql = "INSERT INTO daily_food (number, weight, title, price) VALUES ('1', SELECT weight, title, price FROM food where title = '$add_food' LIMIT 1)";
mysqli_query($conn, $sql);

我有我正在选择的食物的数据库。我也想插入那个数字,但代码什么也没做。我是 sql 新手,所以我无法弄清楚代码的外观。

标签: phpsql

解决方案


只需使用insert . . . select,values不是必需的:

INSERT INTO daily_food (number, weight, title, price) 
    SELECT 1, weight, title, price
    FROM food 
    WHERE title = '$add_food'
    LIMIT 1;

我假设这number确实是一个数字,所以不需要引号。

此外,您应该$add_food作为参数传入,如下所示:

INSERT INTO daily_food (number, weight, title, price) 
    SELECT 1, weight, title, price
    FROM food 
    WHERE title = ?
    LIMIT 1;

推荐阅读