-1

我在打印时制作了一个帖子数组,我得到了以下输出。

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

请帮我

4

3 回答 3

3

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

于 2013-07-04T16:18:59.310 回答
1

试试这个方法

$cols=array_keys($yourarray);
$cols=array_values($yourarray);
$colnames = "`".implode("`, `", $cols)."`";
$colvals = "`".implode("', '", $vals)."`";
$query="update tablename set ($colnames) values ($colvals)";
于 2013-07-04T16:25:16.703 回答
0

像这样的东西

$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 - 我知道我没有清理任何数据,但你应该这样做!

于 2013-07-04T16:21:07.900 回答