gpt4 book ai didi

PHP 准备的 MySQL UPDATE 语句在字符串中包含变量

转载 作者:行者123 更新时间:2023-12-04 01:09:41 25 4
gpt4 key购买 nike

我试图在更新查询的字符串中包含一个变量,但似乎遇到了问题。我刚刚更新我所有的旧网站以使用准备好的语句,所以我还不太熟悉它们。我需要做什么来获取查询中连接的字符串和变量。

$insert = $pdo->prepare("INSERT INTO trees (name, unit) VALUES(:name, :unit)");
$insert->execute([
'name' => $name,
'unit' => $unit
]);
$insertid = $pdo->lastInsertId();
// THIS LINE SPECIFICALLY IS WHERE MY PROBLEM IS vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
$update = $pdo->prepare("UPDATE trees SET filename='tree_".$insertid."_:file_name' WHERE id=:insertid");
$update->execute([
'file_name' => $file_name,
'insertid' => $insertid
]);

我试过不带单引号,在 :file_name 前加单引号。但我似乎得到的只是错误。任何帮助将不胜感激!

最佳答案

您需要 concat() 和查询参数而不是字符串连接:

UPDATE trees 
SET filename = CONCAT('tree_', :insertid, '_', :file_name)
WHERE id = :insertid

实际上,CONCAT_WS() 在这里派上用场:

UPDATE trees 
SET filename = CONCAT_WS('_', 'tree', :insertid, :file_name)
WHERE id = :insertid

关于PHP 准备的 MySQL UPDATE 语句在字符串中包含变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65260522/

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