try {
     $db = new PDO("mysql:host=$host;dbname=$dbname",$user,$password) ;

     $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


     $sqlcollum = array(
                 'First_name'=> 'gaurav',
                 'Last_name' => 'sundaram',

              ) ;
     $Keys = array_keys($sqlcollum) ;
     $Valuess = array_values($sqlcollum) ;
     $Valuess = "'".implode("'", $Valuess)."'" ;


     $db->beginTransaction() ;
    $insert = $db->prepare('INSERT INTO register ($Keys) VALUES ($Valuess)') ;
    $insert->execute() ;
;
    if($insert) {
        echo "true" ;
    } else {
        $db->errorCode() ;
        echo "false" ;
    }
   $db->commit() ;


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

}

错误是SQLSTATE [42S22]:找不到列:1054 try2.php:31中“字段列表”中的未知列'$ Values'。我应该如何正确输入插入语句

最佳答案

只需在“”中使用字符串

$dbh->prepare("INSERT INTO register ($Keys) VALUES ($Valuess)")


因为变量内部'的行为类似于字符串,但变量内部'的值却被获取。

也改变

 $Valuess = "'".implode("','", $Valuess)."'" ;


值必须以逗号分隔,例如'gaurav','sundaram'

关于php - SQLSTATE [42S22]:找不到列:1054“字段列表”中的未知列“$ Values”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34632491/

10-10 02:53