PHP-获取包含单引号的数据
在我的mysql数据库中,我有一些文本包含单引号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
,
,当我试图获取该数据时,它显示为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,但是重新编写代码对个人来说要有用得多。你在这里做的事违反了这么多规定。这就是我要说的。我不会投你的反对票,但我能想到几个这样的人,如果他们看到这一点的话。看看这个,靠近底部,祝你有一个愉快的一天。