如何使用php中的数组动态更新Mysql


How to update Mysql using array in php in a dynamic way

当我打印post数组时,我得到了以下输出。

Array ( [name] => gowtham [content] => Nice Website )

其中数组的键是我的数据库中的列名,值是数据库中的值。我想使用这些值更新我的数据库,但数组后的这些值是基于html表单更改的。

我用内爆做了一根绳子。

$query ="UPDATE ".$_SESSION['table']." SET ".implode(' = ',$array);

但我的输出是

UPDATE testimonials SET gowtham = Nice Website

我想要输出

UPDATE testimonials SET name = gowtham , content = Nice Website

请帮助我

这种方法非常不安全。我建议您使用一个数据库类来处理这些内容。。。。我使用以下内容:http://www.imavex.com/php-pdo-wrapper-class/

尝试这种方式

$cols=array_keys($yourarray);
$cols=array_values($yourarray);
$colnames = "`".implode("`, `", $cols)."`";
$colvals = "`".implode("', '", $vals)."`";
$query="update tablename set ($colnames) values ($colvals)";

类似的东西

$update = '';
$i = 0;
foreach ( $_POST as $key => $value ) {
    $update = $key . ' = "' . $value . '"' . ( $i == count( $_POST ) ? ', ' : '' );
    $i++;
}
$query ='UPDATE ' . $_SESSION['table'] . ' SET ' . $update;

值得注意的是,在运行循环之前,您可能需要取消设置提交按钮,如果您需要按id更新,则需要在循环中跳过该按钮,对于where子句,在if语句中可能是最简单的。

同样值得一提的是,您应该尝试使用PDO或mysqli,因为PHP中的mysql_*函数在5.5版本时已经贬值。

PS-我知道我没有对任何数据进行消毒,但你应该!