【问题标题】:Quotes won't work while updating MySQL table from HTML form using PHP使用 PHP 从 HTML 表单更新 MySQL 表时引号不起作用
【发布时间】:2013-09-19 09:12:54
【问题描述】:

通常我使用这种形式向数据库中插入一个值(在这种情况下是名字和姓氏):

<form action="" method="post">
    First name<br><input type="text" name="fname">
    Last name: <br><input type="text" name="lname">
    <input type="submit">
</form>

现在我想编辑表格。检索值(名字和姓氏)并将其放入下一个表单,如下所示:

<form action="" method="post">
    First name<br><input type="text" name="fname" value="'.$user['fname'].'">
    Last name: <br><input type="text" name="lname" value="'.$user['lname'].'">
    <input type="submit">
</form>

但是当我这样做时,我不能在文本字段中使用双引号。我可以在将值插入数据库时​​使用它,但不能在我想从表单更新值时使用它。它只是在第一个双引号符号处剪切/结束字符串..

您如何构建用户友好的界面来编辑表格中的数据?

顺便说一句,我使用 PDO 来选择、插入和更新表格。

提前致谢。

【问题讨论】:

  • 在构建查询时,是否使用?-syntax(在 PDO 中)甚至命名参数?因为它会自动为您修复报价,所以不要自己做。请参阅此处的示例:php.net/manual/en/pdo.prepare.php
  • 是的,我自己定义名称而不是使用?。你建议不要吗?有没有办法允许双引号并自己定义名称?如果我自己定义名称,我会更好地跟踪代码。
  • 如果您已经在其他地方问过同样的问题,则不应打开新问题。如果您没有我们的新信息,尤其如此。发现这个:stackoverflow.com/questions/18805685/… 另外,addslashes 应该可以解决问题:value="' . addslashes($user['fname']) . '" ...
  • 对不起.. 即使这是两个不同的问题?相同的问题,但有两个不同的问题。
  • 好吧,你显然有同样的问题需要解决(引用机制出错)。在这个问题上有很好的意见可以解决你的问题(即“逃避你的东西”),例如瓦利德汗。所以你可以继续讨论而不是创建一个新的讨论,假装不相关。为了帮助您:您的问题不是数据库,因为您使用 PDO(我在另一个问题上阅读了您的代码,看起来不错)。所以修复你的 HTML 输出,这将解决问题。如果您还不明白是什么导致了您的麻烦,请告诉我。

标签: php mysql forms pdo sql-update


【解决方案1】:

在显示从数据库或用户等检索到的值时,使用 PHP 的 addlashes() 或 htmlspecialchars() 函数...

addslashes($user['username']) // or
htmlspecialchars($user['username'])

【讨论】:

  • 这有什么帮助?它只是添加 \ 而不是 "(双引号),并且仍然在双引号处剪切/结束字符串..
  • 然后使用htmlspecialchars
猜你喜欢
  • 2014-02-28
  • 1970-01-01
  • 2013-09-30
  • 2014-03-01
  • 2017-02-25
  • 1970-01-01
  • 2012-04-10
  • 2014-01-15
  • 1970-01-01
相关资源
最近更新 更多