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

时间:2015-12-16 13:08:39

标签: php mysql fetch

在我的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

1 个答案:

答案 0 :(得分:-1)

这里有一些固定代码:

  • 使用mysqli而不是mysql,因此您可以使用更安全且支持更好的技术
  • 删除@的使用以禁止显示错误消息;压抑错误是PHP的一种愚蠢能力,这意味着任何使用该代码的人都可能会收到PHP级警告并且不知情,这反过来会导致混淆。
  • 删除可能会从输出中删除单引号的mysql_real_escape_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']),
            ];
        }
    }