Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php在mysql中插入特殊字符_Php_Mysql_Special Characters - Fatal编程技术网

使用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>

如果您尝试插入
我很好
,没有符号会发生什么情况?