- 已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。
这个问题似乎与help center中定义的范围内的编程无关。
2天前关闭。
Improve this question
我有一个欢迎页面,它使用已登录用户ID的所有字段的值填充用户表中的文本框。我只想做的是,如果点击"更新值"表单按钮并返回或停留在同一页面上,则使用基于显示其详细信息的用户的ID的更新语句将这些值写回到表中。在这个阶段没有数据验证是必需的。如果在数据库中的两个字段被命名为gas_sc
和elec_sc
,我将如何编码它?文本框被填充使用$_ SESSION ["elec_sc"]= $elec_sc;当用户登录时。
不幸的是,我没有太多的php知识,一直在使用剪切和粘贴从其他例子得到这么远,我看了类似的职位,但没有看到一个回答这个问题。
2条答案
按热度按时间iklwldmw1#
PDO
有关使用PDO更新的信息,请访问此站点:https://phpdelusions.net/pdo_examples/update
它提供了以下示例:
基本上:
$sql
的字符串?
,它是参数化查询的占位符$stmt
,[$name, $surname, $sex, $id]
的数组来执行这与您需要做的事情非常相似,但是您需要将字段名分别替换为
gas_sc
和elec_sc
,并将参数值替换为您收到的值。您还可以传递命名参数,请参阅同一源代码中的以下示例:
注意,这里我们在查询中使用了
:<paramname>
的语法,在传递的$data
中使用了键值对。出于安全原因,您需要使用参数化查询,而不是硬编码值(搜索SQL injection以获取更多信息)
如何继续
您可以创建HTML表单
action
,您需要提供有效的URLmethod
也可以是GET
form
看起来更整洁label
的for
属性指定它应该与什么控件纠缠(通过id
)input
的name
属性指定input
的值将在提交form
时发送到服务器submit
input
是负责提交表单的按钮如何收集值
如果您有属性白名单,例如:
然后你可以收集如下的值:
我们初始化
$data
和$params
,循环$attributes
,每次向它们添加一个paramname=:paramvalue和一个dataname =〉datavalue,然后动态生成查询,方法是将$params
内爆为逗号分隔的赋值,并传递$data
。如果你想动态地改变它(但是要小心),那么你可以像这样构建
$attributes
:同样,要小心,防止任何可能的恶意输入造成伤害。然而,如果不需要验证,正如您所描述的,那么您可以执行上述操作。
v1uwarro2#
它很难查看没有代码的问题,请粘贴您的代码和格式,因为它有点难以帮助您在盲目。
另一方面,告诉我们您使用的是PDO还是mysqli(出于安全考虑,您应该使用PDO)。
无论如何,我读到的,你应该使用
$_POST
值从文本框中获得值,也可以使用文本框的名称(在html中)。应该是这样的:
一旦你得到了这些值,你应该能够让html表单采取你想要的任何行动,并使用PDO或mysqli在SQL语法中使用这些变量,通过将它们作为参数传递给你执行更新的函数,用你用来保存文本框值的变量替换你通常放在更新中的手动数据。
通过执行
echo $firstTextbox
和$secondTextbox
,可以打印保存文本框值的变量的值