【问题标题】:Adding data through php into sql通过php将数据添加到sql中
【发布时间】:2014-11-12 18:27:18
【问题描述】:

谁能帮我解决这个问题,我已经多次检查 SQL 表名,但每次我尝试发布它都会给我一个错误。对此很新。提前致谢。

  require_once('connect.php');

if (isset($_POST['add_product'])):
$product_description=$_POST['product_description'];
$price=$_POST['price'];
$reorder_level=$_POST['reorder_level'];
$current_level=$_POST['current_level'];

$imagename = $_FILES['image']['name'];
$add_this = "products/$imagename";
move_uploaded_file($_FILES['image']['tmp_name'],$add_this);

$my_query="INSERT INTO products VALUES ('','$product_description','$price','$reorder_level','$current_level', '$imagename')";

$result= mysqli_query($connection, $my_query);

if ($result):
    echo "<b>Item Successfully Added!</b>";
    echo "File ";
    echo $_FILES['image']['name'];
    echo " was uploaded - ";
    echo $_FILES['image']['size'];
    echo " bytes in size<br>Temporary name: ";
    echo $_FILES['image']['tmp_name'];
    echo " - file type: ";
    echo $_FILES['image']['type'];

else:
    echo "<b>ERROR: unable to post.</b>";
endif;

 endif;

require_once 'header1.php'; 
 ?>

这是我使用的表单

     <H1>Add a New Product</H1>
 <table>
<form method=post action="addproduct.php" enctype="multipart/form-data">
<tr><td><b>Product Description:</b><td><input type="text" name="product_description" size="30">
<tr><td><b>Price:</b><td><input type="text" name="price"> 
<tr><td><b>Re Order Level:</b><td><input type="text" name="reorder_level">
<tr><td><b>Stock Level:</b><td><input type="text" name="current_level"> 
<tr><td><b>Add Image:</b><td><input type="file" name="image">
<tr><td><input type="submit" name="add_product" >
</form>
</table>
</body>

【问题讨论】:

  • 你得到什么错误?你做了什么来调试这个?
  • 你也对 SQL 注入持开放态度
  • 我知道 sql 注入,只是尝试在这里创建基础知识。我还没有调试过
  • 正如@JohnConde 所说,sql 注入是可能的,用于存储在 db mysql_real_escape_string() 中的变量以简单地防止 sql 注入 - 还要检查用户上传的文件,如果它是脚本,它也可以是一个漏洞,会造成严重的损害或其他坏事(病毒/木马/恶意软件)
  • 错误是什么

标签: php html sql


【解决方案1】:
<?php
  require_once('connect.php');
$mysql = new MYSQLI("host", "username", "password", "database");

if (isset($_POST['add_product'])):
$product_description = $_POST['product_description'];
$price = $_POST['price'];
$reorder_level = $_POST['reorder_level'];
$current_level = $_POST['current_level'];

$imagename = $_FILES['image']['name'];
$add_this = "products/$imagename";
move_uploaded_file($_FILES['image']['tmp_name'],$add_this);

$mysql->query("INSERT INTO products (`NAME OF CELL IN TABLE WHERE YOU WANT SAVE0 $product_description`, `NAME OF CELL IN TABLE WHERE YOU WANT SAVE $price`,  `NAME OF CELL IN TABLE WHERE YOU WANT SAVE $reorder_level`,  `NAME OF CELL IN TABLE WHERE YOU WANT SAVE $current_level`,  `NAME OF CELL IN TABLE WHERE YOU WANT SAVE $imagename`) VALUES ('{$product_description}', '{$price}', '{reorder_level}', '{$current_level}', '{$imagename}')");

if ($result) {
    echo "<b>Item Successfully Added!</b>";
    echo "File ";
    echo $_FILES['image']['name'];
    echo " was uploaded - ";
    echo $_FILES['image']['size'];
    echo " bytes in size<br>Temporary name: ";
    echo $_FILES['image']['tmp_name'];
    echo " - file type: ";
    echo $_FILES['image']['type'];
}
else {
    echo "<b>ERROR: unable to post.</b>";
}

require_once('header1.php'); 
 ?>

试试这个,但是在第 3 行设置你的信息 ($mysql) 并在第 15 行($mysql->query)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多