php里获取html中input的传值写入到数据库中
PHPz
PHPz 2017-04-11 09:20:42
[PHP讨论组]

html:

php:

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

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

PHPz
PHPz

学习是最好的投资!

全部回复(10)
天蓬老师
$_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语句..然后直接拿语句去数据库执行就知道了...我目测问题出在单引号上

高洛峰

感觉也是单引号的问题.

PHPz

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

PHPz

你这样使用单引号引用$_POST是不起作用的。在PHP里单引号是不会执行内部变量的,你改成双引号就可以了。这么多回答已有人提出这样容易被SQL注入是很好的建议,你需要对接受的数据进行处理转义处理防治SQL注入。

怪我咯

"INSERT INTO table_name (columns) values({$_POST['key']})",

用大括号括起来, 增加可读性
说句题外话,所有的用户输入都要过滤,不要直接插数据库

阿神

写成$_POST[key] 的形式。

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号