使用php在mysql中插入特殊字符
当,我试图插入“我很好&你好吗”。当我回顾数据库时,我看到,只有“我很好”被插入,其余的单词被从那个句子中删除。当我在句子之间使用“时,这个问题也会出现 我的示例代码是使用php在mysql中插入特殊字符,php,mysql,special-characters,Php,Mysql,Special Characters,当,我试图插入“我很好&你好吗”。当我回顾数据库时,我看到,只有“我很好”被插入,其余的单词被从那个句子中删除。当我在句子之间使用“时,这个问题也会出现 我的示例代码是 $title= mysql_real_escape_string($_POST['title']); mysql_query("insert into table_db(TITLE) values ('".$title."')") or die(mysql_error()); 我在谷歌上搜索,找到了很多解决方案,但是,我的问题
$title= mysql_real_escape_string($_POST['title']);
mysql_query("insert into table_db(TITLE) values ('".$title."')") or die(mysql_error());
我在谷歌上搜索,找到了很多解决方案,但是,我的问题仍然没有解决。
谢谢你的帮助
varchar(300)您正在使用适当的方法使该字符串对查询“安全”,因此不太可能是查询本身造成问题。
标题
字段的类型/大小是什么?如果是char(9)或varchar(9),那么这只会保留您的“我很好”,而忽略其余部分。我对PHP不熟悉,但这类问题通常可以通过使用绑定参数(也称为“绑定变量”)并让底层数据库API担心特殊字符来解决
通过自己转义和连接字符串,您实际上是在打赌转义函数相对于您选择的数据库是最新的,这里的情况似乎不是这样。试试看
mysql_query("INSERT INTO test_tbl values('$title')");
而不是
mysql_query("insert into table_db(TITLE) values ('".$title."')") or die(mysql_error());
我下面的代码工作正常
<?php
mysql_connect('localhost','root','');
mysql_select_db('core');
if(isset($_POST['submit'])){
echo $title=mysql_real_escape_string($_POST['title']);
mysql_query("INSERT INTO test_tbl values(null,'','','$title')");
}
?>
<html>
<body>
<form method="post">
<input type="text" name="title">
<input type="submit" name="submit">
</form>
</body>
</html>
如果您尝试插入我很好
,没有符号会发生什么情况?