从 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 并使用模板常用的语法;它使处理引号更加清晰易懂。