Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数据库变量_Php_Mysql_Database - Fatal编程技术网

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

我试图通过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>

欢迎使用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扩展。更多阅读:

三,

  • 您不能在查询中回显变量
  • 请,请,请开始阅读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)
    ");
    

    确保将输入转义为更安全的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。