簡體   English   中英

動態sql UPDATE查詢

[英]dynamic sql UPDATE query

如何更新數據庫中的表,其中 MySQL 查詢的 SET 子句取決於變量? 它可以是一個 $var、兩個或更多。

這是我的前任。 代碼:

$name = 'comp_name = "'.$nume.'",';
$large = 'logolarge = "'.$linklogolarge.'",';  
$small = 'logosmall = "'.$linklogosmall.'",';

...............................

 $sql = 'UPDATE company
    SET
            '.$name.'
            '.$large.'
            '.$small.'
    WHERE id_comp = 43 ';

問題是 UPDATE 查詢的正常語法是在 SET ....... 值之間需要一個逗號“,”

前任。

    UPDATE table 
     SET 
     col1 = x , 
     col2 = y , 
     col3 = z 
     WHERE id = 4

最后在 WHERE 之前不需要一個 ..... (例如在“ z ”之后)

那么我怎樣才能讓 sql 查詢接受那些 $var ...( only '.$name.' or '.$name.' and '.$large.' 或最后兩個 '.$large.' 的不同組合。 ' 和 '.$small.' .... 等)

基本上這 3 個 var 之間的任何組合......並且可能組合超過 3 個 var。

$name = "comp_name = '$nume'";
$large = "logolarge = '$linklogolarge'";  
$small = "logosmall = '$linklogosmall'";

$sql = "UPDATE company SET " . $name;
if( ! is_null( $linklogolarge ) ) $sql = $sql . ", " . $large;
if( ! is_null( $linklogosmall ) ) $sql = $sql . ", " . $small;

$where = " WHERE id_comp = 43"; /* change this if required*/
$sql = $sql . $where;

echo $sql;

暫無
暫無

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

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