mysql,update多个字段,如何忽略其中几个字段的错误?

欧瑞捷门 发布于 2017/01/24 17:52
阅读 792
收藏 0

我在php里有一个数组,经过处理后都成了$key = $value,$key = $value……的形式,用于Update之后set的部分,但是这些数组里有些key不在要update的表里,于是便会报错,如何让mysql忽略这个报错并只更新那些在表里的key?

加载中
0
程序兵
程序兵

你应该加个字段过滤,把表里面的字段拿出来对比,存在的在更新,不存在的unset,不这样做你这是sql语法错误忽略不了

0
bigTreee
bigTreee

不应该会报错呀, 不在就不更新嘛

我自己写了一个, 也没问题呀

 function letsRock(){
    $pdo = getPDO();
    $upt_pairs = array(
        'user_123'=>'pwd_123',
        'user_1234'=>'pwd_1234',
        'user_12345'=>'pwd_12345', // 不存在
        'user_456'=>'pwd_456',
        'user_4567'=>'pwd_4567', // 不存在
        'user_789'=>'pwd_789',
        'user_7890'=>'pwd_7890', // 不存在
        'user_999'=>'pwd_999'
    );

    if ($pdo){
        foreach($upt_pairs as $k=>$v){
            $sql = 'UPDATE `Demo` SET `pwd_plain`=? WHERE `user_name`=?';
            $stmt = $pdo->prepare($sql);
            $flag = $stmt->execute(array(
                $v,
                $k
            ));

            echo "Action '" . $k . "' Result: " . print_r($flag,true) . " \n";
        }
    }
 }

表结核

返回顶部
顶部