什么时候,我想插入“我很好,你好吗”。而且,当我回头看数据库时,我看到,只插入“我很好”,其余的单词从该句子中删除。当我在句子之间使用'时,也会出现此问题。
我的示例代码是
$title= mysql_real_escape_string($_POST['title']);
mysql_query("insert into table_db(TITLE) values ('".$title."')") or die(mysql_error());
我在google上搜索过,发现了很多解决方案,但是,我的问题仍然没有解决。 帮助将不胜感激!!
VARCHAR(300)
答案 0 :(得分:2)
您正在使用正确的方法使该字符串对于查询“安全”,因此查询本身不太可能导致问题。 TITLE
字段的类型/大小是多少?如果它是一个char(9)或varchar(9),那么这只会保留你的“我很好”并忽略其余部分。
答案 1 :(得分:1)
我不熟悉PHP,但这种问题通常可以通过使用绑定参数(又名“绑定变量”)并让底层数据库API担心特殊字符来解决。 / p>
通过自己转义和连接字符串,你基本上认为转义函数相对于你选择的数据库是最新的,这似乎不是这里的情况。
答案 2 :(得分:0)
尝试
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>