【发布时间】:2016-04-13 23:11:09
【问题描述】:
我有一个存储过程要存储在数据库中。如下所示:
USE `login`;
DROP procedure IF EXISTS `post_and_fetch_ans`;
DELIMITER $$
USE `login`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `post_and_fetch_ans`(IN answerbody LONGTEXT,IN postid int,IN answerer int)
BEGIN
INSERT INTO `login`.`answers` (answer_body,userpost_post_id,users_user_id) VALUES (answerbody,postid,answerer) ;
SELECT * FROM `login`.`answers` WHERE userpost_post_id = postid ORDER BY answer_date DESC LIMIT 1;
END$$
DELIMITER ;
为了将文本存储在数据库中,我必须在 PDO 准备语句中存储过程以将值绑定到查询字符串。
$result=$db->post_and_fetch("CALL login.post_and_fetch_ans(?,?,?)",array($answer,$post_id,$answerer))->result();
并使用 bindValue 方法绑定参数:
public function post_and_fetch($sql,$params=array()){
$this->_error=false;
if($conn=$this->_pdo->prepare($sql)){
$x=1;
if(count($params)){
foreach($params as $param){
$conn->bindValue($x,$param);
$x++;
}
}
if($conn->execute()){
$this->_results=$conn->fetchAll(PDO::FETCH_OBJ);
$this->_count=$conn->rowCount();
return $this;
}else{
$this->_error=true;
}
}
}
但是当我尝试保存像
这样的字符串时这是一个'测试
只有
这是一个
存储在数据库中。如何在将文本存储到数据库之前转义该文本的撇号形式。任何帮助都会得到帮助?
【问题讨论】:
标签: javascript php mysql stored-procedures pdo