[英]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.