本文介绍了SQLSTATE [42S22]:找不到列:1054“字段列表"中的未知列"$ value"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

try {
    $db = new PDO("mysql:host=$host;dbname=$dbname",$user,$password) ;
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $formInfo = array('fname','lname','email','password','gender') ;
    $entry = array() ;
    foreach($formInfo as $data) {

     $entry[$data] = $_POST[$data];

     }
    //print_r($entry);


    $salt = Hash::gen_salt() ;
    $sqlcollum = array(
                'First_name'=> $entry['fname'] ,
                'Last_name' => $entry['lname'] ,
                'email'     => $entry['email'] ,
                'password'  => Hash::gen_password($entry['password'],$salt) ,
                'salt'      => $salt,
                'gender'    => $entry['gender'] ,
                'date'      => date('Y-m-d H:i'),
                'groups'    => '1'
             ) ;
    $sqlKeys = array_keys($sqlcollum) ;
    $sqlValues = array_values($sqlcollum) ;
    $keys = "'".implode("','", $sqlKeys)."'" ;
    $value = "'".implode("','", $sqlValues)."'" ;
    //echo $keys."<br/>" ;
    //echo $value."<br/>" ;


    $db->beginTransaction() ;

    $insert = $db->query('INSERT INTO register ($keys) VALUES ($value)') ;

    if($insert) {
        echo "true" ;
    } else {
        $db->errorCode() ;
        echo "false" ;
    }
   $db->commit() ;


 } catch(PDOExpection $e) {
    $db->rollback() ;
    die($e->getMessage()) ;
}

为什么会出现此错误?

推荐答案

您可以尝试一下.

 $keys = implode(",",$sqlKeys) ;

这项工作.

这篇关于SQLSTATE [42S22]:找不到列:1054“字段列表"中的未知列"$ value"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-26 07:40