当我打印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-我知道我没有对任何数据进行消毒,但你应该!