2014-04-23 83 views
0

您好我在执行PDO准备语句时出错。我的地方发展工作正常,但是当我尝试插入在云cleardb这个错误发生:PHP PDO执行错误,并插入cleardb

SQLSTATE [42000]:语法错误或访问冲突:1142 INSERT命令剥夺了用户'b2218f51d4a66e'@'191.235.136.58 '表 '用户'' 在/var/www/php1/CRUD.php:52

function create_User($firstname, $lastname, $username, $password, $address, $city, $zip, $country, $email) { 
    global $dbh; 
    $this->password = $password; 
    $token = md5($this->salt1 . $this->password . $this->salt2); 

    $this->sth = $dbh->prepare('INSERT INTO `Php_Project`.`User` 
(  
userName, 
passWord, 
    create_DateStamp, 
e_mail) 

    VALUES 
    (    
      :username, 
    :token, 
      NOW(), 
    :email 
    ); 

“);

$this->sth->bindParam(':username', $username, PDO::PARAM_STR); 
    $this->sth->bindParam(':token', $token, PDO::PARAM_STR); 
    $this->sth->bindParam(':email', $email, PDO::PARAM_STR); 
    if ($this->sth->execute()) { 
     $this->message = "true"; 
    } else { 
     $this->message = "false"; 
    } 

    if ($this->message == "true") { 
     $userId = $dbh->lastInsertId(); 
     $this->sth = $dbh->prepare('INSERT INTO `Php_Project`.`user_Detail` 
( 
firstName, 
lastname, 
adress, 
zip, 
city, 
country, 
userId) 

    VALUES 
    (  
     :firstname, 
     :lastname, 
     :address, 
     :zip, 
     :city, 
     :country, 
     :userId 
    );'); 

     $this->sth->bindParam(':firstname', $firstname, PDO::PARAM_STR); 
     $this->sth->bindParam(':lastname', $lastname, PDO::PARAM_STR); 
     $this->sth->bindParam(':address', $address, PDO::PARAM_STR); 
     $this->sth->bindParam(':zip', $zip, PDO::PARAM_INT); 
     $this->sth->bindParam(':city', $city, PDO::PARAM_STR); 
     $this->sth->bindParam(':country', $country, PDO::PARAM_STR); 
     $this->sth->bindParam(':userId', $userId, PDO::PARAM_STR); 
     if ($this->sth->execute()) { 
      $this->message = true; 
     } else { 
      $this->message = false; 
     } 
    } 
} 

回答

0

这是一个权限问题。您的数据库用户对开发服务器上的表具有INSERT权限,但对您的生产服务器没有此权限,因此您需要在生产服务器上使用GRANT更改用户权限。

+0

如果是这样为什么这个查询工作正常从MySQL工作台:INSERT INTO'as_754979fd4dcbfcb'.'user' ('userId', 'userName', 'passWord', 'create_DateStamp', 'update_DateStamp', 'e_mail') VALUES (默认, “1111”, “2222”, 现在(), 默认, “[email protected]”); – surajnew55

+0

您是否以用户'b2218f51d4a66e'的身份登录Workbench?另外请注意,用户标识符的第二部分也是计数的(例如,'b2218f51d4a66e'@191.235.136.58'与'b2218f51d4a66e'@'%'不同,后者允许从任何主机访问而不是一个主机) – GMemory