从 SQL 转义变量引号
Escaping quotes on variables from SQL
我已经制作了我的 SQLSRV 代码 work.I 我现在正在尝试对我从数据库中获取的信息进行样式化。我现在保持简单,我想把产品的名称放在 div 中(这样我就可以概括我的用例)。问题是我的一些产品恰好有single/double 在他们的 names.Thus 中引用,我在 divs.Here 之外得到很多引用和奇怪的东西是我的代码:
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
$produs=$row['den_produs'];
$caseta="<a href='produs.php?produs=$produs '\''>'
<div class='test'>
<p>$produs</p>
</div>
</a>";
echo $caseta;
}
代码正在运行并显示我的所有变量,但我遇到了这样的错误。我试过去掉斜杠之类的,但没有任何效果。
感谢您的帮助!
问题是在 URL 中使用时需要引号编码,但在主体中 不需要 ,因此应该使用类似的东西(参见 urlencode):
<?php while($row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)): ?>
<a href="produs.php?produs=<?= urlencode($row['den_produs']); ?>">
<div class="test">
<p><?= $row['den_produs']; ?></p>
</div>
</a>
<?php endwhile; ?>
*注意:我将其重构为退出 PHP 并使用模板常用的语法;它使处理引号更加清晰易懂。
我已经制作了我的 SQLSRV 代码 work.I 我现在正在尝试对我从数据库中获取的信息进行样式化。我现在保持简单,我想把产品的名称放在 div 中(这样我就可以概括我的用例)。问题是我的一些产品恰好有single/double 在他们的 names.Thus 中引用,我在 divs.Here 之外得到很多引用和奇怪的东西是我的代码:
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
$produs=$row['den_produs'];
$caseta="<a href='produs.php?produs=$produs '\''>'
<div class='test'>
<p>$produs</p>
</div>
</a>";
echo $caseta;
}
代码正在运行并显示我的所有变量,但我遇到了这样的错误。我试过去掉斜杠之类的,但没有任何效果。
感谢您的帮助!
问题是在 URL 中使用时需要引号编码,但在主体中 不需要 ,因此应该使用类似的东西(参见 urlencode):
<?php while($row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)): ?>
<a href="produs.php?produs=<?= urlencode($row['den_produs']); ?>">
<div class="test">
<p><?= $row['den_produs']; ?></p>
</div>
</a>
<?php endwhile; ?>
*注意:我将其重构为退出 PHP 并使用模板常用的语法;它使处理引号更加清晰易懂。