从mysql数据库显示数据时遇到问题

时间:2019-10-03 06:42:40

标签: php mysql

我想在一个超链接标记内显示两列(dpusername)。

我无法解决问题。

这是我的代码:

echo "<a href='profile.php?user_id=".$row["user_id"]."'>"."<img src='$row['dp']'  width='15' height='15'>". $row['username']. "</a>"

3 个答案:

答案 0 :(得分:0)

请以此替换您的echo html,您在img标签中附加了错误的语法src='$row['dp']'

echo "<a href='profile.php?user_id=".$row["user_id"]."'><img src='".$row['dp']."'  width='15' height='15'>". $row['username']. "</a>";

答案 1 :(得分:0)

如果您想避免此类问题,可以使用sprintf

赞:

echo sprintf(
    '<a href="profile.php?user_id=%s"><img src="%s"  width="15" height="15">%s</a>',
    $row["user_id"],
    $row["dp"],
    $row['username']
);

答案 2 :(得分:0)

您必须正确地转义插入双引号字符串的内容,如下所示:

echo "<a href=\"profile.php?user_id=$row[user_id]\"><img src=\"$row[dp]\" width='15' height='15'>$row[username]</a>";

正如official documentation所说:

  

如果字符串用双引号(“)引起来,PHP将解释   以下特殊字符的转义序列:

\n    // insert a new line
\r    // insert a carriage return
\t    // insert a tab
\v    
\e
\f
\\
\$    // insert a literal $ without searching for a variable
\"    // insert a literal "
\[0-7]{1,3}
\x[0-9A-Fa-f]{1,2}
\u{[0-9A-Fa-f]+}

因此,用"定义的字符串中的每个"必须这样转义:\"$string = "\"";

此外,您无需使用.退出字符串定义来插入变量或数组值,只需执行以下操作:

$string = "$variableName"; // for simple variable
$string = "$myArray[keyName]"; // for array's key access
$string = "{$myMultidimensionalArray['keyNameLevel1']['keyNameLevel2']}"; // for nested array's key access

还有更多的操作,将href设置为",例如<a href=\",这样就可以在其中插入'

<a href=\"someUrlwith'...\"