使用php和mysqli将数据检索到变量中

vh0rcniy  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(246)

这个问题在这里已经有答案了

mysqli查询结果显示所有行(4个答案)
两年前关门了。
我已经试了很长一段时间了,但没有成功
我环顾了很多地方,据我所知,我使用的方法并不是检索我想要的数据,但事实上,数据库中的所有数据(尽管只返回1个值)
这是我现在的代码:

$query = "SELECT id from produtos where tipo = 'Tubo' and inteiro_pedaco = '$tipo' and marca = '$marca' and comprimento = '$comprimento' and diaexterno = '$externo' and diainterno = '$interno'";
$result = $conec->query($query);

echo $result;
die;

在上面的代码中,我试图从一个名为produtos的表中检索id
下面是“produtos”表的内容:

id: 102 | tipo: Tubo | inteiro_pedaco: Inteiro | marca: Science | comprimento: 1000 | diaexterno: 1 | diainterno: 1 |
id: 103 | tipo: Whatever | inteiro_pedaco: Whatever | marca: Whatever | comprimento: Whatever | diaexterno: Whatever | diainterno: Whatever |

等。。。 $result 变量应该检索 "102" 检索后 102 ,我想回显它只是为了测试
但是,如果我能使它工作并回显“102”,我的下一步就是使用 $result 内容,即“102”
我想用以下命令在entrada\u produtos表中插入一些数据:

mysqli_query($conec,"INSERT INTO entrada_produtos (fk_id, usuario, data_inclusao, qtd) VALUES ('$result', '$usuario', now(), '$qtd')");

任何帮助将不胜感激,另外,我不想只是一些代码工作,我想了解它是如何工作的
如果可能的话,试着解释下面的任何代码,这将是非常有帮助的,而且,我想让它尽可能简单,我不想使用像10行代码只是检索到一个变量的一些数据(如果这是唯一可能的方式,那么我什么也做不了,但走这条路…)
提前谢谢

oyxsuwqo

oyxsuwqo1#

您需要获取结果:

$row = $result->fetch_assoc();
$id = $row['id'];
echo $id;
``` `fetch_assoc()` 以关联数组的形式返回下一行结果。
然后你可以使用 `$id` 在你的 `INSERT` 查询。
无需使用两个查询将其插入到另一个表中,只需一个查询即可。

$stmt = $conec->prepare("
INSERT INTO entrada_produtos (fk_id, usuario, data_inclusao, qtd)
SELECT id, ?, now(), ?
FROM produtos
where tipo = 'Tubo'
and inteiro_pedaco = ?
and marca = ?
and comprimento = ?
and diaexterno = ?
and diainterno = ?");
$stmt->bind_param("sssssss", $usuario, $qtd, $tipo, $marca, $comprimento, $externo, $interno);
$stmt->execute();

我已经将其重写为一个准备好的语句,以防止sql注入。这个 `?` 查询中有占位符,占位符由调用中给定的变量值填充 `bind_param()` .
顺便说一句,如果您正在选择刚插入的行 `produtos` ,可以使用mysql函数 `LAST_INSERT_ID()` 或者php变量 `$conec->insert_id` 要获取分配的自动递增id,不需要对此进行查询。

相关问题