如何

2013-11-25 107 views
0

只是一個簡單的問題綁定後的變量約在PHP如何

結合,我知道,如果你這樣做

$select = update my_table set name ='".$posted_name.'" where id=1; 

是受到SQL注入

,但你會怎麼綁定在下面的查詢

$select = update my_table set name ='".$posted_name[$a].'" where id=1; 

在我的綁定數組這是我如何綁定任何東西without[$a]

與第一條語句的任何例子我做

$select = update my_table set name =:p_update_name where id=1; 

    $bind_update = array('p_update_name' => $t_update_name); 
+0

http://php.net/manual/en/pdo.prepared-statements.php –

+0

@SureshKamrushi所以在PDO中,您將執行'$ stmt-> bindParam(1,$ name [ $一]);'? – Henry

+0

http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php –

回答

1

嘗試這樣的:

$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)"); 
$stmt->bindParam(1, $name); 
$stmt->bindParam(2, $value); 

// insert one row 
$name = 'one'; 
$value = 1; 
$stmt->execute(); 
+0

你可以嘗試和覆蓋pdo和mysqli方法在你的答案請。謝謝 – Henry

0

你不必讓所有的名字相同。

$select = "update my_table set name =:whatever where id=1"; 
$bind_update = array('whatever' => $random_variable); 

會做。所以它可以是你可以想到的任何變量。只要它是標量變量,雖然

+0

那麼我需要在聲明或綁定中包含'[$ a]'怎麼辦? – Henry

+0

請您閱讀我的回答? –

+0

ok我看到你的答案,所以基本上你綁定的方式'$ select = update my_table set name ='「。$ posted_name [$ a]。'」其中id = 1;'和'$ select = update my_table set name ='「。$ posted_name。'」其中id = 1;' – Henry