PHP,MYSQL,PDO我试图通过管理页面更新用户帐户

时间:2014-07-16 15:41:52

标签: php pdo

我正在尝试通过带有PDO的管理页面更新用户帐户。我可以使用以下

手动更新它
$userInsert = DB::getInstance()->update('quotes', 245, array('firstname' => 'Helen'));

但我希望通过$ _GET方法来实现。这是我认为正确的

<?php
if(Input::exists()) {
    if(Token::check(Input::get('token'))) {

    $userInsert = DB::getInstance()->update('quotes', Input::get('id'), array(
                        'firstname',    '=', escape(Input::get('firstname')),
                        'lastname',     '=', escape(Input::get('lastname')),
                        'email',        '=', escape(Input::get('email')),
                        'alt_email',    '=', escape(Input::get('alt_email')),
                        'phone',        '=', escape(Input::get('phone')),
                        'mobile',       '=', escape(Input::get('mobile')),
                        'company_name', '=', escape(Input::get('company_name')),
                        'ticker',       '=', escape(Input::get('ticker')),
                        'shares_held',  '=', escape(Input::get('shares_held')),
                        'shares_sell',  '=', escape(Input::get('shares_sell')),
                        'comments',     '=', escape(Input::get('comments'))
                        ));

    Session::flash('success', '<pre class="pre-success">Client Account Updated Successfully</pre>');
    Redirect::to('admin.php');

    }
}

这是我的输入类

的副本
<?php
class Input {
public static function exists($type = 'post') {
    switch($type) {
        case 'post':
            return (!empty($_POST)) ? true : false;
        break;
        case 'get':
            return (!empty($_GET)) ? true: false;
        break;
        default:
            return false;
        break;
    }
}

public static function get($item) {
    if(isset($_POST[$item])) {
        return $_POST[$item];
    } else if (isset($_GET[$item])) {
        return $_GET[$item];
    }

    return '';
}
}

我似乎无法让它更新数据库,我没有收到任何错误,并且会重定向并显示成功消息。

************ EDIT *******************

很抱歉,现在包含了更新功能

public function update($table, $id, $fields = array()) {
    $set    = '';
    $x      = 1;

    foreach($fields as $name => $value) {
        $set .= "{$name} = ?";
        if($x < count($fields)) {
            $set .= ', ';
        }
        $x++;
    }

    $sql = "UPDATE {$table} SET {$set} WHERE id = {$id}";

    if(!$this->query($sql, $fields)->error()) {

        return true;
    }

    return false;
}

0 个答案:

没有答案