【发布时间】:2015-05-25 18:40:21
【问题描述】:
我有这个表格可以上传图片到我的mysql数据库:
<h4>Add Photo</h4>
<form enctype="multipart/form-data" method="post">
<?php
require_once 'config.php';
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (isset($_POST['upload'])){
$caption = $_POST['caption'];
$albumID = $_POST['album'];
$file = $_FILES ['file']['name'];
$file_type = $_FILES ['file']['type'];
$file_size = $_FILES ['file']['size'];
$file_tmp = $_FILES ['file']['tmp_name'];
$random_name = rand();
if (empty($file)){
echo "Please enter a file <br>";
} else {
move_uploaded_file($file_tmp, 'uploads/'.$random_name.'.jpg');
mysqli_query(
$mysqli,
"INSERT INTO photos (caption, image_url, date_taken, imageID) "
. "VALUES('"
. addslashes($caption) . "', '"
. $random_name . ".jpeg', NOW(), ?)"
);
echo "Photo successfully uploaded!<br>";
}
}
?>
Caption: <br>
<input type="text" name="caption">
<br><br>
Select Album: <br>
<select name="album">
<?php
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$result = $mysqli->query("SELECT * FROM albums");
while ($row = $result->fetch_assoc()) {
$albumID = $row['albumID'];
$title = $row['title'];
echo "<option value='$albumID'>$title</option>";
}
?>
</select>
<br><br>
Select Photo: <br>
<input type="file" name="file">
<br><br>
<input type="submit" name="upload" value="Upload">
</form>
我可以成功地将图片上传到我服务器上的“上传”文件夹,但是我的数据库中的“照片”表中没有添加任何内容。 我的照片文件夹的架构是: 标题,image_url,date_taken,imageID
我的结构有什么问题吗? mysqli代码? 任何帮助将不胜感激!提前谢谢!
【问题讨论】:
-
您在值中使用
?作为占位符。那是prepared statements 语法,你没有为此做任何准备。将or die(mysqli_error($mysqli))添加到mysqli_query()并找出失败的原因。您会看到语法错误。
标签: php mysql mysqli image-uploading