PHP数据库变量
我试图通过PHP变量插入一条记录PHP数据库变量,php,mysql,database,Php,Mysql,Database,我试图通过PHP变量插入一条记录 <html> <head> <title>Welcome to PHP Products</title> </head> <body> <?php $txt1=$_POST["product_form_no"]; $txt2=$_POST["product_form_name"]; $txt3=$_POST["product_form_desc"]; $con = mysq
<html>
<head>
<title>Welcome to PHP Products</title>
</head>
<body>
<?php
$txt1=$_POST["product_form_no"];
$txt2=$_POST["product_form_name"];
$txt3=$_POST["product_form_desc"];
$con = mysql_connect("localhost:3306","root","INDIA");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("sample", $con);
mysql_query("INSERT INTO `sample`.`product` (`product_no`, `product_name`, `product_desc`, `created_DT`) VALUES
(echo $txt1,echo $txt2,echo $txt3, CURRENT_TIMESTAMP);");
mysql_close($con);
?>
<h1>The Entered Product</h1>
<p>Product No</p><?php echo $txt1 ?>
<p>Product Name</p><?php echo $txt2 ?>
<p>Product Desc</p><?php echo $txt3 ?>
</body>
</html>
欢迎使用PHP产品
输入的产品
产品编号
产品名称
产品说明
不幸的是,它不是通过mysql_查询中的变量插入的。它也没有给出一些错误 用这种方法
//First escape your variable values before using into query
$txt1=mysql_real_escape_string($_POST["product_form_no"]);
$txt2=mysql_real_escape_string($_POST["product_form_name"]);
$txt3=mysql_real_escape_string($_POST["product_form_desc"]);
mysql_query("INSERT INTO `sample`.`product` (`product_no`, `product_name`, `product_desc`, `created_DT`) VALUES
('$txt1','$txt2','$txt3', CURRENT_TIMESTAMP());");
建议:
1.学会防止MySQL注入:
2.编写新代码时不建议使用Mysql扩展。相反,应该使用mysqli或PDO_MySQL扩展。更多阅读:
三,
mysql_query("
INSERT INTO `sample`.`product` (`product_no`, `product_name`, `product_desc`, `created_DT`)
VALUES ('" . mysql_real_escape_string($txt1) . "', '" . mysql_real_escape_string($txt2) . "', '" . mysql_real_escape_string($txt3) . "', CURRENT_TIMESTAMP)
");
确保将输入转义为更安全的SQL,回音不应该在那里。我还认为当前的时间戳应该是一个函数,并且具有参数
<html>
<head>
<title>Welcome to PHP Products</title>
</head>
<body>
<?php
$txt1=mysql_real_escape_string($_POST["product_form_no"]);
$txt2=mysql_real_escape_string($_POST["product_form_name"]);
$txt3=mysql_real_escape_string($_POST["product_form_desc"]);
$con = mysql_connect("localhost:3306","root","INDIA");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("sample", $con);
mysql_query("INSERT INTO `sample`.`product` (`product_no`, `product_name`, `product_desc`, `created_DT`) VALUES
('$txt1','$txt2','$txt3', CURRENT_TIMESTAMP())");
mysql_close($con);
?>
<h1>The Entered Product</h1>
<p>Product No</p><?php echo $txt1 ?>
<p>Product Name</p><?php echo $txt2 ?>
<p>Product Desc</p><?php echo $txt3 ?>
</body>
</html>
欢迎使用PHP产品
在尝试创建一个处理产品和可能的carts的应用程序之前,您可能应该先阅读一本PHP书籍。你还有很多东西要学,我的意思是,用最好的方式:)也就是说,你的问题是你没有在你的MySQL\u查询调用中建立一个合适的MySQL查询。然而,比这更成问题的是,即使您的字符串格式正确,它也容易受到SQL注入的攻击,而SQL注入会对您造成恶劣影响。与问题无关,但是。。。1) 你不应该在页面的文件中输入密码。如果您曾经意外地提供文件代码而不是解释它,那么您就是在给出密码。2) 您的代码很容易受到SQL注入漏洞的影响,在这些漏洞中,您可以直接根据用户输入构建查询。3) 请停止使用mysql\u*
,至少使用mysqli\u*
或者更好的,使用类似PDO的东西。4) 您有一个XSS漏洞,可以将用户输入回显到页面。您不需要回显这些变量。将它们传递到两个单引号(')中,对于日期时间,使用sql的now()函数。。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO。