【发布时间】:2018-09-06 18:56:55
【问题描述】:
最近我尝试通过准备好的语句将图像插入数据库。可悲的是,在教程中没有关于如何包含除字符串之外的其他信息的信息。我想让我准备好的语句将图像传递到数据库这是我的代码不起作用。
$connect = mysqli_connect($hostname, $username, $password, $databaseName);
$fname = mysqli_real_escape_string($connect, $_POST['yname']);
$lname = mysqli_real_escape_string($connect, $_POST['email']);
$filename = $_FILES['uploadfile']['name'];
$filetmpname = $_FILES['uploadfile']['tmp_name'];
$folder = 'imagesuploadedf/';
// edited and added below code. it will check if folder exists and create if not exists.....
$foldername = 'imagesuploadedf';
if ( ! is_dir($foldername)) {
mkdir($foldername);
}
// end of edited and added code
move_uploaded_file($filetmpname, $folder.$filename);
// $sql = "INSERT INTO `uploadedimage` (`imagename`) VALUES ('$filename')";
// connect to mysql database using mysqli
$sql = "INSERT INTO `tabela`(`name`, `email`, `imagename`) VALUES (?, ?, ?)";
$stmt = mysqli_stmt_init($connect);
if(!mysqli_stmt_prepare($stmt, $sql)){
echo "Error";
} else{
mysqli_stmt_bind_param($stmt, "sss", $fname, $lname, $filename);
mysqli_stmt_execute($stmt);
}
mysqli_close($connect);
}
【问题讨论】:
-
图片不属于数据库,属于文件系统。您应该做什么将图像存储在目录中,然后将图像的路径存储在数据库中
-
是整个代码吗?如果是,那么你有一个 } 额外的
-
不清楚您是尝试插入 blob 字段并嵌入其中的图像,还是只想将文件名字符串存储到数据库中。在标题中,您似乎正在尝试存储 blob,并且代码表明您正在尝试插入文件名字符串
-
如果您要存储的是 blob,请参阅 PHP PDO 文档,说明如何执行此操作。 PDO 是在 PHP 中连接到数据库的指定方式,因为它与数据库无关并且具有许多功能。 php.net/manual/en/pdo.lobs.php
标签: php mysql sql prepared-statement