要存储在数据库中的文本在撇号之前结束
Text to be stored in database ends before apostrophpe
我有一个存储过程要存储在数据库中。如下所示:
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;
}
}
}
但是当我试图保存像这样的字符串时
这是一个"测试"
仅
这是
存储在数据库中。如何在将文本存储到数据库之前转义该文本的撇号形式。。有什么需要帮忙的吗?
在传递给函数之前,您可以对值使用mysql_real_aescape_string
$str = "Zak's and Derick's Laptop";
$str_with_escape = mysql_real_escape_string($str);
则对于解码,必须替换以下字符中的前置反斜杠:''x00,''n,''r,'',',"和''x1a。
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 循环结束/推送到数组之前在页面上呈现EJS
- 将作用域存储在JSON中
- 使用javascript存储变量的最安全方式
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 如何有效地将游戏数据存储在URL查询字符串中
- Ember.js-接口状态应该存储在哪里
- 在另一个函数成功结束后调用该函数
- 如何解雇“;铁局部存储负载”;事件
- 本地存储中的字符串到字节数组转换
- 从jQuery调用存储在Variable中的函数
- 推荐在JavaScript中执行存储为字符串的函数,而不是使用eval
- 在动画结束之前调用函数
- 通过另一个php应用程序将我的项目推送到Github存储库中
- 将数据存储在javascript数组中以供进一步使用
- 在页面卸载时写入HTML5 FileSystem API存储
- 游戏结束页面 - 无法保存到本地存储
- 要存储在数据库中的文本在撇号之前结束
- 为什么存储在Object中的函数在运行结束时在控制台中返回undefined ?