首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP join() 函式應用:陣列快速轉 SQL 欄位與值字串

     編輯:PHP 綜合知識

基本語法

join(string $glue, array $pieces): string
// 等同於 implode()

實戰範例:動態建構 INSERT 語句

<?php
$key = array();
$val = array();

foreach ($_POST as $k => $v) {
    // 過濾鍵名:反引號包裹、防 SQL 注入
    $key[] = '`' . strip_tags(mysql_real_escape_string(trim($k))) . '`';
    // 過濾值:單引號包裹、防 SQL 注入
    $val[] = "'" . strip_tags(mysql_real_escape_string(trim($v))) . "'";
}

$keys = join(",", $key);  // `col1`,`col2`,`col3`
$vals = join(",", $val);  // 'val1','val2','val3'

$sql = "INSERT INTO table_name ($keys) VALUES ($vals)";
// 執行 $sql...
?>

⚠️ 重要安全警示

此範例使用已棄用的 mysql_real_escape_string(),且手動拼裝 SQL 存在注入風險!

現代寫法請改用 PDO 預備語句:

<?php
$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$keys = array_keys($_POST);
$placeholders = join(',', array_fill(0, count($keys), '?'));
$sql = "INSERT INTO table_name (`" . join('`,`', $keys) . "`) VALUES ($placeholders)";
$stmt = $pdo->prepare($sql);
$stmt->execute(array_values($_POST));
?>

join() 其他常見用法

場景程式碼結果
陣列轉 CSV 行join(',', $row)a,b,c
標籤字串join(' ', $tags)php mysql tutorial
路徑組合join('/', $parts)var/www/html
SQL IN 子句join(',', array_fill(0, count($ids), '?'))?,?,?
URL 參數join('&', $params)a=1&b=2

效能提示

  • join() / implode() 是 C 實作,**極快**,優於迴圈字串連接
  • 大量字串拼接時,先收集陣列最後 join(),避免重複記憶體分配
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved