我是新来的php,我试图插入数据到我的数据库不幸的是,我成功地插入了名称和价格,但我在插入图片(longblob)卡住了,这里是我的代码
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "tbl_product";
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(isset($_POST['update']))
{
$name = $_POST['name'];
$image = $_FILES['image'];
$price = $_POST['price'];
$statement = $conn->prepare('INSERT INTO tbl_product (name, image, price)
VALUES (:name, :image, :price)');
$statement->execute([
':name' => $name,
':image' => $image,
':price' => $price,
]);
}
?>
<div class="settings-row">
<h3>Name</h3>
<form action="insertscript.php" method="post" enctype="multipart/form-data">
<div class="form-group">
<input type="text" class="form-control" name="name">
<h3>Image</h3>
Select image to upload:
<input type="file" name="image">
<h3>Price</h3>
<input type="number" class="form-control small-input" name="price" >
<input type="submit" value="Submit" name="update" id="update">
</div>
</form>
</div>
<? echo '<img src="data:image/jpeg;base64,'.base64_encode( $row['image'] ).'" class="img-responsive"/>';?><br />
2条答案
按热度按时间qyzbxkaa1#
根据我的评论,您似乎希望存储实际的文件数据,而不是使用的文件路径
file_get_contents
在上传的图片上-像这样也许。。。要显示已保存为base64编码数据的图像,请使用
img
标签需要修改。例如:aydmsdu92#
我认为你的数据库和你的表不一样。。尝试此操作并替换'----datatable---'。您必须将图像转换为包含文件内容的blob