我在班上有这个功能
public function insertnewRec($name,$lastname,$category){
try{
$cmd = $this->connection->prepare('INSERT into user (fname,lname,$category) values(?,?,?)');
$cmd->execute(array($name,$lastname,$category));
}
catch(){}
}
我想根据我的类别的值插入字段,例如,如果category的值为= left,那么pdo语句应该是这样的,
insert into user(fname,lname,left) values etc.....
但它不起作用。我得到错误sql语法
$cmd = $this->connection->prepare('INSERT into user (fname,lname,$category) values(?,?,?)');
提前谢谢。
答案 0 :(得分:1)
“例如,如果category的值为= left,那么pdo语句应该是这样的”
那是因为left
是一个MySQL保留字:
因此,您需要在反引号中包含$category
:
INSERT into user (fname,lname,`$category`)
与right
一样,您是否应该决定使用该词。
答案 1 :(得分:-1)
您应该创建一个新的pdo对象
// Replace `$category` with a parameter `:category`
$cmd = $this->connection->prepare('INSERT into user (fname,lname,:category) values(?,?,?)');
// bind $category and pass it into the execute() call inside an array
$cmd ->execute(array('category'=>$category));