echo out mysql_real_escape引号在引用或双引号后切断字符串

时间:2012-11-16 10:48:41

标签: php mysql quotes mysql-real-escape-string

我遇到了浏览器的这种奇怪但令人烦恼的语法问题。通过以下方式编码,我丢失了特殊字符后的所有字符串:"

    echo '<td><input type=text style=width:100px name=itembrand value="' . $itembrand . ' " </td>';
    echo '<td><input type=text style=width:150px name=itemname value="' . $itemname . '" </td>';
    echo '<td><input type=text style=width:150 name=serialnr value="' . $serialnr . '" </td>';
    echo '<td><input type=text style=width:150px name=addinfo value="' . $addinfo . '" </td><td>';

如果我反过来编码,我会在'

之后丢失所有内容
    echo "<td><input type=text style=width:37px name=code value='" . $code ."' </td>";
    echo "<td><input type=text style=width:100px name=itembrand value='" . $itembrand . "' </td>";
    echo "<td><input type=text style=width:150px name=itemname value='" . $itemname . "' </td>";
    echo "<td><input type=text style=width:150 name=serialnr value='" . $serialnr . "' </td>";
    echo "<td><input type=text style=width:150px name=addinfo value='" . $addinfo . "' </td><td>";

使用'"以及之后的字符串来回显数据库项目的正确语法是什么?

注意:
我正在使用<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />并且数据库条目是正确的,所以这必须是具有语法的东西。

1 个答案:

答案 0 :(得分:1)

好的,我使用htmlspecialchars()来做到这一点。代码如下:

    echo '<td><input type=text style=width:100px name=itembrand value="' . htmlspecialchars($itembrand) . ' " </td>';
    echo '<td><input type=text style=width:150px name=itemname value="' . htmlspecialchars($itemname) . '" </td>';
    echo '<td><input type=text style=width:150 name=serialnr value="' . htmlspecialchars($serialnr) . '" </td>';
    echo '<td><input type=text style=width:150px name=addinfo value="' . htmlspecialchars($addinfo) . '" </td><td>';