簡體   English   中英

PHP 准備 MySQL UPDATE 語句,字符串內有變量

[英]PHP Prepared MySQL UPDATE Statement with Variable inside of a string

我試圖在更新查詢的字符串中包含一個變量,但似乎遇到了問題。 我剛剛更新了我所有的舊網站以使用准備好的語句,所以我對它們還不是很熟悉。 我需要做什么才能在查詢中連接字符串和變量。

$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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM