html数据插入到数据库,将数据插入到数据库中:text和html格式

在尝试将文本和HTML格式的数据插入MySQL的LONGTXT字段时遇到错误。错误提示涉及SQL语法,可能与特殊字符编码有关。已经尝试了包括addslashes和htmlentities在内的多种保护措施,但问题依然存在。代码中包含了处理逗号、分号和斜杠的函数,以及用于插入数据的PHP函数。目前寻求帮助以解决这个插入操作的语法错误。
摘要由CSDN通过智能技术生成

将数据(文本和HTML格式)插入到mysql字段LONGTXT中时出现问题。 这里是错误将数据插入到数据库中:text和html格式

public 'error' => string 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''<p>

Haec subinde Constantius audiens et quaedam referente Thalassio doc' at line 1' (length=226)

错误和几乎清楚。我用保护的所有功能(编码格式,报价,禁用HTML ...) 我想到了另外一个办法,我创建了两个函数处理逗号,分号和斜杠 下面是函数和addslashes的代码:

FUNCTION addText($txt)

{

IF(get_magic_quotes_gpc()==false)

{

RETURN utf8_encode(addslashes($txt));

}else{

RETURN utf8_encode($txt);

}

}

保护逗号功能:

FUNCTION protect_virgules($txt)

{

IF($txt!='')

{

$x = strlen($txt);

$newTxt = '';

FOR($i=0;$i<=$x;$i++)

{

IF($txt[$i]==',' || $txt[$i] == ';')

{

$newTxt.= '\\'.$txt[$i];

}

else

{

$newTxt.=$txt[$i];

}

}

RETURN htmlentities($newTxt);

}

else

RETURN '0';

}

插入PHP函数:

public function insert($table,$data){

$this->last_insert_id = NULL;

$fields = "";

$values = "";

foreach($data as $fld => $val){

$values .= trim($this -> escape($val)).",";

$fields .= $fld.",";

}

$values = '"'.substr($values,0,strlen($values)-1).'"';

$fields = '"'.substr($fields,0,strlen($fields)-1).'"';

$tab=array($this->escape($table),$fields,$values,"@last_id");

$this->CALL_SP("sp_insert",$tab);

if ($result = mysqli_query($this->linkId, "SELECT @last_id AS last_inserted_id")) {

while ($row = mysqli_fetch_assoc($result))

{

$this->last_insert_id = $row['last_inserted_id'];

}

}

return $this->queryId;

}

插入SQL PROC代码:

BEGIN

SET @stmt_sql=CONCAT("INSERT INTO ", tableName, " (",fields,")VALUES(", param ,")");

PREPARE stmt FROM @stmt_sql;

EXECUTE stmt;

DEALLOCATE PREPARE stmt;

SELECT LAST_INSERT_ID() into last_id;

END

语法错误总是抓住我的喉咙。 你能帮我吗?

+2

发布执行的实际SQL查询。 –

+1

另外,尝试通过'mysqli_real_escape_string()'传递数据。 –

+0

在函数中使用函数escape($ values。= trim($ this - > escape($ val)...使用mysqli_real_escape_string()返回字符串 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值