第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 獲取或將數(shù)據(jù)發(fā)布到變量中,包括

PHP 獲取或將數(shù)據(jù)發(fā)布到變量中,包括

PHP
精慕HU 2022-09-17 17:33:05
想要將動態(tài) GET 變量轉換為兩個內部變量,以便我可以在 SQL 查詢中使用這些值。我正在將變量字符串傳遞給這樣的URLhttp://localhost/api-data?serial=1923473http://localhost/api-data?manufacturer=jaguarhttp://localhost/api-data?location=londonhttp://localhost/api-data?country=uk我想將GET數(shù)據(jù)轉換為兩個不同的變量,例如串行變?yōu)?data 1,1923473變?yōu)?data 2。GET數(shù)據(jù)總是以上述格式,我只想轉換為兩個不同的變量。print_r($_GET);我可以看到變量像數(shù)組一樣傳遞。我的問題是,如果數(shù)據(jù)以以下格式傳遞 AAAAA=BBBBB 作為獲取變量,我如何將 AAAAA 轉換為變量 $data 1,將 BBBBBB 轉換為 £data2。請記住,GET 數(shù)據(jù)將始終是唯一的。一旦我在2個唯一變量中擁有了這些數(shù)據(jù),我就想運行一個SQL查詢。select blah1, blah2, blah4, blah5 from datastore where $data1 = "$data2";提前感謝您。
查看完整描述

4 回答

?
慕標5832272

TA貢獻1966條經(jīng)驗 獲得超4個贊

$_GET是傳遞的所有參數(shù)的數(shù)組。因此,的 URL 將導致?abc=def&foo=bar$_GET


array(2) { 

    ["abc"]=> string(3) "def" 

    ["foo"]=> string(3) "bar" 

}

使用此功能,您可以遍歷每個項目并將其附加到查詢中:


foreach($_GET as $key => $val) {

    $query .= " AND $key = '$val'";

}

但是,請確??紤] SQL 注入。在這種情況下,解決此問題的最佳選擇是使用有效密鑰列表驗證每個密鑰。


查看完整回答
反對 回復 2022-09-17
?
慕的地8271018

TA貢獻1796條經(jīng)驗 獲得超4個贊

您的方法不是最好的,當您有多個GET變量時,需要重新設計,但通常:


$allowed = ['serial', 'manufacturer']; //etc...

$col = key($_GET);


if(in_array($col, $allowed)) {

    $val = $_GET[$col];


    //Then prepare and execute using whatever DB library you are using

    $st = $db->prepare("SELECT blah1, blah2, blah4, blah5 FROM datastore WHERE $col = ?");

    $st->execute([$val]);

}


查看完整回答
反對 回復 2022-09-17
?
慕容森

TA貢獻1853條經(jīng)驗 獲得超18個贊

這是以簡單明了的聲明性方式執(zhí)行此操作的一種方法。


我強烈建議檢查 PDO 和 PDO 語句來構建查詢。沒有添加此示例,因為它不是問題。


<?php


// given 

$_GET = ['serial' => 342, 'something-else' => 'not used'];

$allowedVariables = ['serial', 'manufacturer', 'location', 'country'];


// filter values from the query for only allowed keys

$data = array_filter($_GET, function ($value, $key) use ($allowedVariables) {

    return in_array($key, $allowedVariables);

}, ARRAY_FILTER_USE_BOTH);


// create an array of strings like "$data1 = $data2"

$query = array_map(function ($key, $value) {

    return "$key = $value";

}, array_keys($data), array_values($data));


// build the query while combining values with the "AND" keyword

$query = "select * from datastore where " . implode(' and ', $query);


var_dump($query);

// string(42) "select * from datastore where serial = 342"


查看完整回答
反對 回復 2022-09-17
?
牛魔王的故事

TA貢獻1830條經(jīng)驗 獲得超3個贊

為此,您可以使用(閱讀有關 php.netextract($inputArray))


輸入數(shù)組中的鍵將成為變量名稱,其值將分配給這些新變量。


此外,如果要篩選鍵,以便有人不會在您當前的作用域中注入不需要的變量,請在調用函數(shù)之前執(zhí)行以下操作...extract()


<?php

// Pick only the data keys that are expected. Their names must be compatible with the PHP variable naming conventions.

$filteredData = array_intersect_key($_GET /* or $_POST*/, array_flip(['serial', 'manufacturer', 'location', 'country']));


// Extract the names into variables in the current scope.

extract($filteredData);

?>


查看完整回答
反對 回復 2022-09-17
  • 4 回答
  • 0 關注
  • 128 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號