php数据库的值嵌入input_php里获取html中input的传值写入到数据库中

html:

e4e2e9d7df0024573bf7768be758b858.png

php:

ff7b90abde199ced7adb81e3715c4c43.png

php里红框部分需要把html里,name=”new_title_info”的值获取到,这里要怎么写啊?我在最底下有写echo . $sql来看看我插入的语句,之前结果发现后面值是空的,现在解图这个改法直接提示

1d771ead090b3fc5d1aa8f62bd34be1a.png

问题还是出在$sql=”….这行,要怎么改阿?

$_POST('key') 在“ ”双引号里面的关联数组不需要加‘ ’单引号

$sql="insert into table() values('$_POST[key]')";

用句号来做concatenate你的字符串。虽然这样做不安全。更加推荐用parameterized query

首先你这种纯手写的mysql_query是很容易被sql注入的。其次,如果怀疑是sql语句的问题,建议先echo一下具体的值是否满足期望,做一些有效性的判断,然后再组建sql语句。

简单点分开写

$name = $_POST[‘new_title_info’];

$class = $_POST[‘new_class_info’];

$sql = “Insert into table (xxx,xxx) values ($name,$class)”;

如果你们工作组里要求有代码审查的话你会被骂死…

用户输入变量真心不能直接插入sql啊…

另外..你只要先打印一下你拼装的sql语句..然后直接拿语句去数据库执行就知道了…我目测问题出在单引号上

感觉也是单引号的问题.

你把sql语句打印出来,看下格式对不对,放到mysql中跑一跑不就看到问题了

你这样使用单引号引用

$_POST

是不起作用的。在

PHP

里单引号是不会执行内部变量的,你改成双引号就可以了。这么多回答已有人提出这样容易被

SQL

注入是很好的建议,你需要对接受的数据进行处理转义处理防治SQL注入。

“INSERT INTO table_name (columns) values({$_POST[‘key’]})”,

用大括号括起来, 增加可读性

说句题外话,所有的用户输入都要过滤,不要直接插数据库

写成$_POST[key] 的形式。

by the way!

不要直接拼写sql语句,不安全。要做下预处理之类的措施,防止sql注入攻击。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值