首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP和MySQL其中和

PHP和MySQL其中和
EN

Stack Overflow用户
提问于 2013-11-25 23:32:57
回答 2查看 1.6K关注 0票数 0

我有一个发布到createcsv.php的表单。该表单有两个字段"entmonth""entyear"。我在createcsv.php中遇到了问题,"entmonth"可以正确拉取,但"entyear"似乎不能拉取$_POST['entyear']变量。我有一些输入,需要知道我在这些代码行中哪里出错了。

代码语言:javascript
复制
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 
$entmonh='$_POST[entmonth]';
$entyear='$_POST[entyear]';
$select = "SELECT * FROM POs WHERE entmonth = '$entmonth' AND entyear = '$entyear'";
EN

回答 2

Stack Overflow用户

发布于 2013-11-25 23:44:34

是的,你可以使用:

代码语言:javascript
复制
$entmonh=$_POST[entmonth];
$entyear=$_POST[entyear];

正如其他人所说的那样。

但是你应该尝试使用mysqli或PDO insted,因为你使用的是一个过时的php模块,而且你的metode也是不安全的。这里有一个很好的教程的链接:http://net.tutsplus.com/tutorials/php/pdo-vs-mysqli-which-should-you-use/

链接中的一个示例是一个带有命名参数的简单连接,用于保护您的数据库免受注入:

代码语言:javascript
复制
$pdo = new PDO("mysql:host=localhost;dbname=database", 'username', 'password');

$params = array(':username' => 'test', ':email' => $mail, ':last_login' => time() - 3600);

$pdo->prepare('
   SELECT * FROM users
   WHERE username = :username
   AND email = :email
   AND last_login > :last_login');

$pdo->execute($params);
票数 1
EN

Stack Overflow用户

发布于 2013-11-26 00:01:16

如果您坚持使用现在已经折旧的mysql_*插件,请至少这样做:

代码语言:javascript
复制
mysql_connect($host, $username, $password)or die("cannot connect"); 
mysql_select_db($db_name)or die("cannot select DB"); 

$entmonh = mysql_real_escape_string($_POST['entmonth']);
$entyear = mysql_real_escape_string($_POST['entyear']);

$select = "SELECT * FROM POs WHERE entmonth = '$entmonth' AND entyear = '$entyear'";

这将提供一些针对SQL注入的保护。

但请不要以这种方式编写新代码。使用mysqli_*或learn (或使用mysqli的准备好的语句)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20196914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档