[英]What is a General error and when and why do we get it? {“error”:{“text”:SQLSTATE[HY000]: General error}}
I am trying to update my Users table after I insert data into.It worked fine when I was just returning all the data but now it is giving me this error msg i get when I run it in Postman. 我在插入数据后尝试更新Users表。当我只返回所有数据时,它工作正常,但现在它给了我在Postman中运行它时遇到的此错误消息。
171{"error":{"text":SQLSTATE[HY000]: General error}} 171 {“错误”:{“文本”:SQLSTATE [HY000]:常规错误}}
This is the code I am trying to execute using the slim frame work. 这是我尝试使用超薄框架工作执行的代码。
function add_User()
{
$response = array();
$request = \Slim\Slim::getInstance()->request();
$name = $request->post('name');
$emailId = $request->post('emailId');
$mobileNumber = $request->post('mobileNumber');
$password = $request->post('password');
$otp = $request->post('otp');
$user_status = $request->post('user_status');
$referral_code = $request->post('referral_code');
$referred_by = $request->post('referred_by');
$addressId=NULL;
$sql = "INSERT IGNORE INTO users(userId,name,emailId,mobileNumber,password,otp,user_status,referral_code,referred_by)VALUES
(NULL,:name,:emailId,:mobileNumber,:password,:otp,:user_status,:referral_code,:referred_by);";
try
{
$db = getConnection();
$stmt = $db->prepare($sql);
$stmt->bindParam("name", $name);
$stmt->bindParam("emailId", $emailId);
$stmt->bindParam("mobileNumber", $mobileNumber);
$stmt->bindParam("password", $password);
$stmt->bindParam("otp", $otp);
$stmt->bindParam("user_status", $user_status);
$stmt->bindParam("referral_code", $referral_code);
$stmt->bindParam("referred_by", $referred_by);
$stmt->execute();
if ($stmt->rowCount())
{
$lastId = $db->lastInsertId();
echo $lastId;
$refCode= $referral_code.$lastId;
$sql ="Update Users SET referral_code = :referral_code, referred_by = :referred_by WHERE userId = :userId";
try
{
$db = getConnection();
$stmt = $db->prepare($sql);
$stmt->bindParam("userId", $lastId);
$stmt->bindParam("referral_code", $refCode);
$stmt->bindParam("referred_by", $referred_by);
$stmt->execute();
$res = $stmt->fetchAll(PDO::FETCH_OBJ);
$row=count($res);
$db = null;
if ($row > 0)
{
$response["error"] = "SignUp SuccessFully";
$response['userId'] = $res;
echoResponse(201, $response);
} else
{ $response['error'] = true;
$response['message'] = "User Not Available";
echoResponse(200, $response);
}
} catch(PDOException $e)
{
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
} else
{
$response['error'] = true;
$response['message'] = "Cant create User";
echoResponse(200, $response);
}
} catch(PDOException $e)
{
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
Any help or support is appreciated.Thank you. 感谢您的帮助或支持。
Answer from: PDO error: " SQLSTATE[HY000]: General error " When updating database 答案来自: PDO错误:“ SQLSTATE [HY000]:常规错误”更新数据库时
You do not use fetchAll()
as in 您不像这样使用fetchAll()
$res = $stmt->fetchAll(PDO::FETCH_OBJ);
with update or insert queries. 与更新或插入查询。 Removing this statement should rectify the problem. 删除此语句应纠正此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.