-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

このように使う

//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 インジェクションを防ぐ方法を学ぶ: Good Link

2.Mysql 拡張機能は、新しいコードの作成には推奨されません。代わりに、mysqli または PDO_MySQL 拡張機能を使用する必要があります。詳細: PHP マニュアル

3.変数の解析

于 2012-12-17T18:48:50.117 に答える
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 に答える
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 に答える