-1

我正在尝试通过 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 = 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>

不幸的是,它没有通过 mysql_query 中的变量插入。它也没有给出一些错误。

4

3 回答 3

3
  1. 您不会echo在查询中使用变量。
  2. 请,请,请开始阅读 SQL 注入。你的代码对它很开放。

查询应该是这样的:

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)
");
于 2012-12-17T18:50:10.107 回答
3

使用这种方式

//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 扩展。更多阅读:PHP 手册

3.变量解析

于 2012-12-17T18:48:50.117 回答
0

一定要转义你的输入以使 SQL 更安全,回声不应该在那里。我也认为 CURRENT_TIMESTAMP 应该是一个函数并且有括号。

<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>
于 2012-12-17T18:52:40.067 回答