Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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-获取包含单引号的数据_Php_Mysql_Fetch - Fatal编程技术网

PHP-获取包含单引号的数据

PHP-获取包含单引号的数据,php,mysql,fetch,Php,Mysql,Fetch,在我的mysql数据库中,我有一些文本包含单引号,,当我试图获取该数据时,它显示为null。如何解决此问题 谢谢 这就是我正在做的 $products = "SELECT * FROM products "; $result = @mysql_query($products, $connection) or showSQLError(); if($result) { $results_array = array(); while($row = mys

在我的mysql数据库中,我有一些文本包含单引号
,当我试图获取该数据时,它显示为null。如何解决此问题

谢谢

这就是我正在做的

$products =   "SELECT * FROM products ";

$result = @mysql_query($products, $connection) or showSQLError();
    if($result) {
        $results_array = array();
        while($row = mysql_fetch_array($result)) {
            $results_array[] = array(
                'name' => $row['name'],
                'description' => mysql_real_escape_string(nl2br($row['description']))
            );
        }
    } 
我的绳子是

Puppy’s dental health. 
结果是

"description":null

以下是一些固定代码:

  • 使用
    mysqli
    而不是
    mysql
    ,因此您使用的技术更安全,支持度更高
  • 取消使用
    @
    来抑制错误消息;抑制错误是PHP的一个愚蠢的功能,这意味着任何使用代码的人都可能会收到PHP级别的警告,并且不知道,这反过来会导致混乱

  • 删除
    mysql\u real\u escape\u string()
    ,这可能会从输出中删除单引号

    $connection = mysqli_connect('host', 'user', 'password', 'database');
    
    $result = mysqli_query($connection, $products) or die(mysqli_error($connection));
    if ($result){
        $results_array = [];
        while ($row = mysqli_fetch_array($result)){
            $results_array[] = [
                'name' => $row['name'],
                'description' => nl2br($row['description']),
            ];
        }
    }
    

您的查询在哪里?
单引号“
单引号”
?两种不同的动物。我敢打赌问题在于插入,而不是获取。您是否验证了单引号实际上在数据库中?是的,在数据库中。。刚刚检查了它,确认
mysql\u real\u escape\u string()
用于插入数据库。去掉那个<代码>'description'=>nl2br($row['description'])true,但不回答问题。这本应该是一条评论。它既试图回答问题,又能纠正不推荐代码的使用——尽管有很多评论建议这样做,但人们往往不会修改代码,除非他们能看到一个明确的替代示例。此外,注释不是代码块的好位置,因为它们不允许换行。所有这些都是对的,但堆栈上有很多地方已经解释了mysqli/pdo。你应该在评论中链接到它们,而不是发布一个不是答案的答案。我知道这是在你发布这个之后,但我们已经确定他的问题不在他给出的代码中。\n如果答案是错误的,那么它将不会被接受;对于问题中的信息,只有一个区域可以在输出中不加引号。在随后的评论中,我看到人们正在讨论
json\u encode
,但这甚至不是问题所在。此外,网络上有很多地方解释mysqli/pdo,但是重新编写代码对个人来说要有用得多。你在这里做的事违反了这么多规定。这就是我要说的。我不会投你的反对票,但我能想到几个这样的人,如果他们看到这一点的话。看看这个,靠近底部,祝你有一个愉快的一天。