2010-06-18 72 views
3

我有一個表單,jQuery跟蹤事件,所以當事件發生變化時,它運行一個Ajax請求,並傳入列中id ,以及url中的值。試圖建立一個動態的PHP的mysql_query字符串來更新一行並獲取更新的行

這裏我有PHP代碼應該更新數據。

我現在的問題是如何動態地構建mySQl字符串。 以及我如何回顯剛剛在db上更改的更改/更新。

這是我正在嘗試使用的PHP代碼。

<?php require_once('Connections/connect.php'); ?> 

<?php 
    $id = $_GET['id']; 
    $collumn = $_GET['collumn']; 
    $val = $_GET['val']; 
?> 


<?php 
    mysql_select_db($myDB, $connection); 

    // here i try to build the query string and pass in the passed in values 
    $sqlUpdate = 'UPDATE `plProducts`.`allPens` SET `$collumn` = '$val' WHERE `allPens`.`prodId` = '$id' LIMIT 1;'; 

    // here i want to echo back the updated row (or the updated data) 
    $seeResults = mysql_query($sqlUpdate, $connection); 
    echo $seeResults 
?> 

就是這個例子好嗎?

$sqlUpdate = 'UPDATE `plProducts`.`allPens` SET "{$collumn}" = "{$val}" WHERE `allPens`.`prodId` = "{$id}"LIMIT 1;'; 

回答

3

使用字符串連接運算符.

$sqlUpdate = 'UPDATE `plProducts`.`allPens` SET `' . $collumn .'` = \'$val\' WHERE `allPens`.`prodId` = '. $id . ' LIMIT 1;'; 
mysql_query(mysql_escape_string($sqlUpdate)); 

當然,這提出了一大堆SQL injection漏洞。

+2

該死的打我吧:D – MANCHUCK 2010-06-18 14:30:59

+1

@adardesign只是回顯$ val變量。你不需要查詢數據庫,因爲你已經擁有它了 – MANCHUCK 2010-06-18 14:31:46

+0

@Jacob你能解釋一下你說的「SQL注入漏洞是多麼的多。謝謝 – adardesign 2010-06-18 14:34:51