2010-06-18 68 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