簡體   English   中英

有沒有比 VALUES($var1, $var2, $var3) 更好的方法來向 MySQL 查詢插入值?

[英]Is there a better way to insert values to MySQL query than just VALUES($var1, $var2, $var3)?

我只有 15 個值的數組,所有這些值都需要插入到表中。 我只是想知道是否有這樣的事情:

INSERT INTO table VALUES($myarrayofvalues)

只是好奇,會很有用。

更新:
只有一行 15 列。

$query = "INSERT INTO table VALUES('" . implode("', '", $myarrayofvalues) . "')";

編輯

如果您還沒有完成 escaping,您可以在上述語句之前的一個小循環中執行此操作,例如:

foreach($myarrayofvalues as $k=>$v)
    $myarrayofvalues[$k] = mysql_real_escape_string($v);

雖然您可以執行Rick的答案中顯示的內容,但它對 SQL 注入開放。

如果沒有某種列映射,確實沒有什么好的方法可以做到這一點。 那就是 state 元素 1 是一個字符串,元素 2 是一個 integer。

因此,我看到兩個選擇:

  1. 逃離一切

    $values = array(); foreach ($myarrayofvalues as $value) { $column[].= "'". mysql_real_escape_string($value). "'"; } $sql = "INSERT INTO table VALUES(". implode(',', $values). ")";
  2. 寫出完整的 SQL 語句

    $sql = "INSERT INTO table (column1_string, column2_int, ...) VALUES ('". mysql_real_escape_string($myarray[0]). "', ". (int)$myarray[1]. ", ...)

我更喜歡#2,因為它更具可讀性且不那么脆弱。 目前,如果您的架構或數組發生更改,您的代碼就會中斷。

暫無
暫無

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

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