未从数据库

时间:2018-03-30 06:15:52

标签: php database phpmyadmin

我使用addslashes()在数据库中使用PHP插入带有撇号的数据。 这很有效。

但是当我想选择这些数据并在下拉列表中显示时,它会在下拉选项中显示正确的值,但是当我选择并使用此值时,它仅显示撇号之后的值,而忽略撇号值。

这是我的插入和选择的代码和查询: 插入:

INSERT INTO `all_item_list` VALUES ('','".addslashes($t2)."','$t3')

选择:

$qu="Select DISTINCT Item_Name from all_item_list";
$res=mysqli_query($con,$qu);
while($r=mysqli_fetch_row($res))
{ 
    echo "<option value='".stripslashes($r[0])."'> $r[0] </option>";
}

2 个答案:

答案 0 :(得分:0)

删除stripslashes函数会有所帮助,我想。由于stripslashes会从字符串中删除斜杠,这会让编译器感到困惑。

示例:字符串是“它是我”,因此代码变为:

echo "<option value='it's me'> $r[0] </option>";

导致撇号之前唯一的字符串。

希望得到这个帮助。

答案 1 :(得分:0)

添加和删除斜杠不会对HTML有所帮助。您需要在inputhtml encode中删除引号。

这样的事情:

echo "<option value='" . htmlentities($r[0], ENT_QUOTES) . "'> $r[0] </option>";

此外,请研究parameterized queries,因为在您的SQL语句中调用addslashesnot sufficient来清理用户输入,并且会让您容易受到SQL注入攻击。