-1

因此,在我能找到的任何地方进行了数小时的无果搜索之后,我正在寻求帮助。我有一个简单的 html 表单,它要求一些输入,让我选择一个文件就好了,然后将它发送到一个应该连接到我的 MySQL 的 php 表单(在那里寻找 nemo 时刻......)并保存文件变成一个longBLOB。尝试从我的 /tmp 目录中读取。nada 尝试直接阅读$_FILES['userfile']['tmp_name']和 nada。尝试了下面的代码,几乎所有我可以从互联网上阅读、收集或无耻剽窃的代码混合和匹配,但仍然没有。

$sendUp = $_POST["whatDoc"];
$teamCriteria = $_POST["team"];
$lastNameCriteria = $_POST["lastName"];
$firstNameCriteria = $_POST["firstName"];

$myFile = $_FILES['userfile']['tmp_name'];
$fn = $_FILES['userfile']['name'];
$fl = $_FILES['userfile']['size'];
$fp = fopen($myFile, 'r');
$content = fread($fp, filesize($myFile));
$content = addslashes($content);

#lines below changed for obvious reasons
$con = mysqli_connect("the usual", "the usual", "*********", "the usual");
 if (mysqli_connect_errno())
 {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$query = "UPDATE leo SET '$sendUp'=$content WHERE Last='$lastNameCriteria'";

mysqli_query($con, $query)or die('Error, query failed');

在这里斗智斗勇,真的可以使用生命线。

谢谢大家。

附言。就像我说的,今晚做了很多阅读,我知道有更好和更有效的方法来存储文件,而不是将图片/pdf/everythingunderthesun 作为数据库中的 BLOB 上传,但这就是我想要做的 :)

4

2 回答 2

2
  1. 不要将文件存储在数据库中。而是将它们存储在文件系统中。
  2. 无论如何,您的数据库结构为此目的是错误的。不应该有动态的字段名称。
  3. 通过方法,您对 SQL 注入持开放态度。
于 2013-06-26T05:02:56.707 回答
0

你的查询是错误的。您在表名周围使用了单引号,但这应该是反引号`

$query = "UPDATE leo SET '$sendUp'=$content WHERE Last='$lastNameCriteria'";

应该

$query = "UPDATE leo SET `$sendUp` = '$content' WHERE Last='$lastNameCriteria'";
于 2013-06-26T04:46:28.443 回答