我正在网站上工作,它在MySQL中有一个表,其中包含几行的HTML。每当我尝试从表中提取数据时,它都会返回""对于包含HTML的行。其他行(没有HTML的行)返回正确的数据。我转义了所有双引号和单引号,整行都在一行(没有换行符)。我现在一直试图解决这个问题,但我无法弄明白。有什么想法吗?
<?php
$con = mysqli_connect('localhost', 'exampleuser', 'examplepass', 'exampledb');
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$query = "SELECT * FROM Publications;";
$result = mysqli_query($con, $query);
while ($row = mysqli_fetch_row($result)) {
echo "\n<br>\"" . $row['Publications'] . "\"\n<br>";
}
?>
我输入的HTML非常长,所以只是粘贴第一部分。请记住,HTML中没有换行符。我只是把它们放进去,这样更容易阅读。
<p class="MsoTitle"><span style="font-size: 12pt;">Publications</span><span style="font-
size: 12pt; font-weight: normal;"></span></p><p class="MsoNormal"><strong>
<span> </span></strong></p><p class="MsoNormal"
style="margin-left: 0.25in; text-indent: -0.25in;">1. <strong><span style="font-weight:
normal;">C. V. Krishnan and M. Garnett, Electrochemical Behavior of the Super Antioxidant,
α-</span></strong></p><p class="MsoNormal" style="margin-left: 0.25in; text-indent:
-0.25in;"><strong><span style="font-weight:
这就是他们的回报:
""
答案 0 :(得分:1)
根据你和我之间的意见交换。(关闭问题)
注意:未定义的索引:第14行/home/garnett/public_html/test.php中的出版物
这源于您的列名为publications
而不是Publications
。
$row['Publications']
和$row['publications']
两个不同的动物。
列名称区分大小写,这就是您没有输出任何数据的原因。
使用文件顶部的错误报告,可以发现潜在的错误(如果您的代码中有任何错误,就像您从暗示性评论中找到的那样)。
error_reporting(E_ALL);
ini_set('display_errors', 1);
<强> http://php.net/manual/en/function.error-reporting.php 强>
以及or die(mysqli_error($con))
到mysqli_query()
修改:
正如E-Rock在评论中指出的那样:
“mysqli_fetch_row()
返回一个枚举的行数据数组。如果你期望一个关联数组”,你需要mysqli_fetch_assoc()
。谢谢E-Rock。