查询失败:SQLSTATE [HY093]:无效的参数编号:绑定变量的数量与令牌的数量不匹配 [英] Query failed:SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

查看:92
本文介绍了查询失败:SQLSTATE [HY093]:无效的参数编号:绑定变量的数量与令牌的数量不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

require_once"DataObject.class.php";
类成员扩展了DataObject {

受保护的$ data = array(
"id" =>",
"firstName" =>",
"lastName" =>",
"username" =>",
"password" =>",
"joinDate" =>",
"gender" =>",
部门" =>",
"emailAddress" =>",
"otherInterests" =>"
);

私人$ _department = array(
"biotech" =>"Biotech",
"computerscience" =>"ComputerScience",
"civil" =>"Civil",
"electrical" =>"Electrical",
机械的" =>机械的"
);

公共静态函数getMembers($ startRow,$ numRows,$ order){
$ conn = parent :: connect();
$ sql ="SELECT SQL_CALC_FOUND_ROWS * FROM" .TBL_MEMBERS."ORDER BY.$ order LIMIT:startrow,:numRows";

试试{
$ st = $ conn-> prepare($ sql);
$ st-> bindValue(:startRow",$ startRow,PDO :: PARAM_INT);
$ st-> bindValue(:numRows",$ numRows,PDO :: PARAM_INT);
$ st-> execute();
$ membes = array();
foreach($ st-> fetchAll()as $ row){
$ members [] = new Member($ row);
}
$ st = $ conn-> query("SELECT found_rows()As totalRows");
$ row = $ st-&f; fetch();
parent :: disconnect($ conn);
return array($ members,$ row ["totalRows"]);
} catch(PDOException $ e){
parent :: disconnect($ conn);
die(查询失败:".$ e-> getMessage());
}
}
公共静态函数getByUsername($ username){
$ conn = parent :: connect();
$ sql ="SELECT * FROM" .TBL_MEMBERS."WHERE username =:username";

试试{

$ st = $ conn-> prepare($ sql);
$ st-> bindValue(:username",$ username,PDO :: PARAM_STR);
$ st-> execute();
$ row = $ st-&f; fetch();
parent :: disconnect($ conn);
if($ row)返回新成员($ row);
} catch(PDOException $ e){
parent :: disconnect($ conn);
die(查询失败:".$ e-> getMessage());
}
}

公共静态函数getByEmailAddress($ emailAddress){
$ conn = parent :: connect();
$ sql ="SELECT * FROM" .TBL_MEMBERS."WHERE emailAddress =:emailAddress";

试试{
$ st = $ conn-> prepare($ sql);
$ st-> bindValue(:emailAddress",$ emailAddress,PDO :: PARAM_STR);
$ st-> execute();
$ row = $ st-&f; fetch();
parent :: disconnect($ conn);
if($ row)返回新成员($ row);
} catch(PDOException $ e){
parent :: disconnect($ conn);
die(查询失败:".$ e-> getMessage());
}
}


公共函数getGenderString(){
return($ this-> data ["gender"] =="f")?"Female":"Male";
}
公共函数getDepartmentString(){
return($ this-> _department [$ this-> data ["Department"]]));
}
公共函数getDepartment(){
返回$ this-> _department;
}

公共功能insert(){
$ conn = parent :: connect();
$ sql ="INSERT INTO" .TBL_MEMBERS.(
id,
用户名,
密码,
名,
姓氏,
joinDate,
性别,
部门,
emailAddress,
其他利益
)值(
:id,
:用户名,
密码(:password),
:firstname,
:姓氏,
:joinDate,
:gender,
:部门,
:emailAddress,
:otheInterests
);

试试{
$ st = $ conn-> prepare($ sql);
$ st-> bindValue(:id",$ this-> data ["id"],POD :: PARAM_STR);
$ st-> bindValue(:username",$ this-> data ["username"],POD :: PARAM_STR);
$ st-> bindValue(:password",$ this-> data ["password"],POD :: PARAM_STR);
$ st-> bindValue(:firstname",$ this-> data ["firstname"],POD :: PARAM_STR);
$ st-> bindValue(:lastname",$ this-> data ["lastname"],POD :: PARAM_STR);
$ st-> bindValue(:joinDate",$ this-> data ["joinDate"],POD :: PARAM_STR);
$ st-> bindValue(:gender",$ this-> data ["gender"],POD :: PARAM_STR);
$ st-> bindValue(:department",$ this-> data ["department"],POD :: PARAM_STR);
$ st-> bindValue(:emailAddress",$ this-> data ["emailAddress"],POD :: PARAM_STR);
$ st-> bindValue(:otheInterests",$ this-> data ["otherInterests"],POD :: PARAM_STR);
$ st-> execute();
parent :: disconnect($ conn);
} catch(PDOException $ e){
parent :: disconnect($ conn);
die(查询失败:".$ e-> GetMessage());
}
}
}
?>

require_once"DataObject.class.php";
class Member extends DataObject{

protected $data=array(
"id"=>" ",
"firstName"=>"",
"lastName"=>"",
"username"=>"",
"password"=>"",
"joinDate"=>"",
"gender"=>"",
"department"=>"",
"emailAddress"=>"",
"otherInterests"=>""
);

private $_department=array(
"biotech"=>"Biotech",
"computerscience"=>"ComputerScience",
"civil"=>"Civil",
"electrical"=>"Electrical",
"mechanical"=>"Mechanical"
);

public static function getMembers($startRow,$numRows,$order){
$conn=parent::connect();
$sql="SELECT SQL_CALC_FOUND_ROWS *FROM".TBL_MEMBERS."ORDER BY.$order LIMIT:startrow,:numRows";

try{
$st=$conn->prepare($sql);
$st->bindValue(":startRow",$startRow,PDO::PARAM_INT);
$st->bindValue(":numRows",$numRows,PDO::PARAM_INT);
$st->execute();
$membes=array();
foreach($st->fetchAll()as $row){
$members[]=new Member($row);
}
$st=$conn->query("SELECT found_rows() As totalRows");
$row=$st->fetch();
parent::disconnect($conn);
return array($members,$row["totalRows"]);
} catch(PDOException $e){
parent::disconnect($conn);
die("Query failed:".$e->getMessage());
}
}
public static function getByUsername($username){
$conn=parent::connect();
$sql="SELECT * FROM".TBL_MEMBERS."WHERE username=:username";

try{

$st=$conn->prepare($sql);
$st->bindValue(":username",$username,PDO::PARAM_STR);
$st->execute();
$row=$st->fetch();
parent::disconnect($conn);
if($row)return new Member($row);
} catch(PDOException $e){
parent::disconnect($conn);
die("query failed:".$e->getMessage());
}
}

public static function getByEmailAddress($emailAddress){
$conn=parent::connect();
$sql="SELECT * FROM".TBL_MEMBERS."WHERE emailAddress=:emailAddress";

try{
$st=$conn->prepare($sql);
$st->bindValue(":emailAddress",$emailAddress,PDO::PARAM_STR);
$st->execute();
$row=$st->fetch();
parent::disconnect($conn);
if($row)return new Member($row);
} catch(PDOException $e){
parent::disconnect($conn);
die("query failed:".$e->getMessage());
}
}


public function getGenderString(){
return ($this->data["gender"]=="f")?"Female":"Male";
}
public function getDepartmentString(){
return ($this->_department[$this->data["Department"]]);
}
public function getDepartment(){
return $this->_department;
}

public function insert(){
$conn=parent::connect();
$sql="INSERT INTO".TBL_MEMBERS."(
id,
username,
password,
firstname,
lastname,
joinDate,
gender,
department,
emailAddress,
otherInterests
) VALUES(
:id,
:username,
password(:password),
:firstname,
:lastname,
:joinDate,
:gender,
:department,
:emailAddress,
:otheInterests
)";

try{
$st=$conn->prepare($sql);
$st->bindValue(":id",$this->data["id"],POD::PARAM_STR);
$st->bindValue(":username",$this->data["username"],POD::PARAM_STR);
$st->bindValue(":password",$this->data["password"],POD::PARAM_STR);
$st->bindValue(":firstname",$this->data["firstname"],POD::PARAM_STR);
$st->bindValue(":lastname",$this->data["lastname"],POD::PARAM_STR);
$st->bindValue(":joinDate",$this->data["joinDate"],POD::PARAM_STR);
$st->bindValue(":gender",$this->data["gender"],POD::PARAM_STR);
$st->bindValue(":department",$this->data["department"],POD::PARAM_STR);
$st->bindValue(":emailAddress",$this->data["emailAddress"],POD::PARAM_STR);
$st->bindValue(":otheInterests",$this->data["otherInterests"],POD::PARAM_STR);
$st->execute();
parent::disconnect($conn);
}catch(PDOException $e){
parent::disconnect($conn);
die("Query failed:".$e->GetMessage());
}
}
}
?>

推荐答案

data = array(
"id" =>",
"firstName" =>",
"lastName" =>",
"username" =>",
"password" =>",
"joinDate" =>",
"gender" =>",
部门" =>",
"emailAddress" =>",
"otherInterests" =>"
);

私人
data=array(
"id"=>" ",
"firstName"=>"",
"lastName"=>"",
"username"=>"",
"password"=>"",
"joinDate"=>"",
"gender"=>"",
"department"=>"",
"emailAddress"=>"",
"otherInterests"=>""
);

private


_department = array(
"biotech" =>"Biotech",
"computerscience" =>"ComputerScience",
"civil" =>"Civil",
"electrical" =>"Electrical",
机械的" =>机械的"
);

公共静态函数getMembers(
_department=array(
"biotech"=>"Biotech",
"computerscience"=>"ComputerScience",
"civil"=>"Civil",
"electrical"=>"Electrical",
"mechanical"=>"Mechanical"
);

public static function getMembers(


startRow,


这篇关于查询失败:SQLSTATE [HY093]:无效的参数编号:绑定变量的数量与令牌的数量不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆