用空间mysql php连接字符串

Sel*_*oek 0 php sql concatenation htmlspecialchars

$menunaam = "Lazy Dog" 
$resultmenus = mysqli_query($dbc,"SELECT menunaam FROM prijslijst WHERE menunaam='$menunaam'");
$row = mysqli_fetch_array($resultmenus,MYSQLI_ASSOC);
echo "<input type=\"hidden\" class=\"mnu\" name=\"mnnm\" value=".htmlspecialchars($row["menunaam"]).">";
Run Code Online (Sandbox Code Playgroud)

这输出

<input class="mnu" type="hidden" Dog="" value="Lazy" name="mnnm">
Run Code Online (Sandbox Code Playgroud)

然后当我像这样改变它工作正常(添加额外的单引号):

echo "<input type=\"hidden\" class=\"mnu\" name=\"mnnm\" value='".htmlspecialchars($row["menunaam"])."'>";
Run Code Online (Sandbox Code Playgroud)

然后我遇到了一个新问题.当我使用含有内容的变量时:$ menunaam ="lazy's"

<input class="mnu" type="hidden" s'="" value="lazy" name="mnnm">
Run Code Online (Sandbox Code Playgroud)

jed*_*rds 5

什么错了:

echo '<input type="hidden" class="mnu" name="mnnm" value="'.htmlspecialchars($row["menunaam"]).'">';
Run Code Online (Sandbox Code Playgroud)

或者更好的是:

printf('<input type="hidden" class="mnu" name="mnnm" value="%s">', htmlspecialchars($row["menunaam"]));
Run Code Online (Sandbox Code Playgroud)