使用PHP更新MySQL更新数据库中的blob图像

使用PHP更新MySQL更新数据库中的blob图像,php,mysql,database,blob,Php,Mysql,Database,Blob,我正在尝试更新数据库中的一条blob类型的记录,我可以很容易地使用此方法插入,但使用update时,它似乎不起作用,仅用于文本。有人能给我指出正确的方向吗 这是我的密码: <?php $conn=mysqli_connect("localhost","root","root","plantidentify"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " .

我正在尝试更新数据库中的一条blob类型的记录,我可以很容易地使用此方法插入,但使用update时,它似乎不起作用,仅用于文本。有人能给我指出正确的方向吗

这是我的密码:

<?php
$conn=mysqli_connect("localhost","root","root","plantidentify");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$ufamid = mysqli_real_escape_string($conn, $_POST['ufamilyid']);
$ucommonname = mysqli_real_escape_string($conn, $_POST['ucomname']);
$usynname = mysqli_real_escape_string($conn, $_POST['usynonyms']);
$uspecies = mysqli_real_escape_string($conn, $_POST['uspecies']);
$uprop = mysqli_real_escape_string($conn, $_POST['upropagation']);
$uimageData = mysqli_real_escape_string($conn, (file_get_contents($_FILES['uimage']['tmp_name'])));
$uheight = mysqli_real_escape_string($conn, $_POST['uheight']);
$utreeclass = mysqli_real_escape_string($conn, $_POST['utreeclass']);
$ulifecycle = mysqli_real_escape_string($conn, $_POST['ulifecycle']);

$UpdateQuery = "UPDATE plant 
                SET FamilyID='$ufamid', CommonName='$ucommonname',       
                    SynonymNames='$usynname', Species='$uspecies', 
                    Propagation='$uprop', Image='$uimageData', 
                    Height='$uheight', TreeClass='$utreeclass', 
                    Lifecycle='$ulifecycle' 
                WHERE PlantID='$_POST[uplantid]'";


if (!mysqli_query($conn,$UpdateQuery)) {
  die('Error: ' . mysqli_error($conn));
}

header("Location: plantedit.php");

mysqli_close($conn);
?>

看起来您在
WHERE
语句中有输入错误,
$\u POST[uplanti]
应该是
“$\u POST['uplanti']”。
要上传文件,您应该在表单中提到
enctype='multipart/form data'
。希望这能解决你的问题

<?php 

//display databse values
            while($plant=mysql_fetch_array($retval)) {
            echo"<form action='updateplant.php' method='post'  enctype='multipart/form-data' >";

            echo "<tr>";
            echo "<td>" . "<input type=number name=ufamilyid value='" .$plant['FamilyID']."' ></td>";
            echo "<td>" . "<input type=text name=ucomname value='" .$plant['CommonName']."' ></td>";
            echo "<td>" . "<input type=text name=usynname value='" .$plant['SynonymNames']."' ></td>";
            echo "<td>" . "<input type=text name=uspecies value='" .$plant['Species']."' ></td>";
            echo "<td>" . "<input type=text name=uprop value='" .$plant['Propagation']."' ></td>";
            echo "<td>" . "<input type=file name=uimage></td>";
            echo "<td>" . '<img class="crop2" src="data:image/jpeg;base64,'. base64_encode( $plant['Image'] ).'"/>'." </td>";
            echo "<td>" . "<input type=number name=uheight value='" .$plant['Height']."' ></td>";
            echo "<td>" . "<input type=text name=utreeclass value='" .$plant['TreeClass']."' ></td>";
            echo "<td>" . "<input type=text name=ulifecycle value='" .$plant['Lifecycle']."' ></td>";
            echo "<td>" . "<input type=hidden name=uplantid value='" .$plant['PlantID']."' ></td>";
            echo "<td>" . "<input type=submit name=update value=Update" . " ></td>";
            echo "</tr>";




            echo "</form>";
            }//end while
            mysql_close($conn);
        ?>

没有,没有MySQL错误,什么都没有。我也在PHP验证器中运行了我的代码,但一切正常。我真的被困在这里了。好的。你们能在浏览器上回显$UpdateQuery并在phpmyadminTry上运行它来删除重定向,然后观察错误吗。还有,你确定你在请求发帖吗?您的代码不会检查请求中是否有任何数据。同样在双引号字符串中,数组引用应该像这样包装:
{$\u POST['uplandi']}
。我重复了$UpdateQuery,这是输出:更新植物集FamilyID='3',CommonName='Cape Edelweiss',同义词='',物种=''L.lanata',繁殖='',图像='',高度='',树类='',Lifecycle='Annual',PlantID='6'我用您所说的打字错误进行了更改,但仍然没有区别。图像似乎仍然没有更新到数据库的表中。谢谢你的意见。
<?php 

//display databse values
            while($plant=mysql_fetch_array($retval)) {
            echo"<form action='updateplant.php' method='post'  enctype='multipart/form-data' >";

            echo "<tr>";
            echo "<td>" . "<input type=number name=ufamilyid value='" .$plant['FamilyID']."' ></td>";
            echo "<td>" . "<input type=text name=ucomname value='" .$plant['CommonName']."' ></td>";
            echo "<td>" . "<input type=text name=usynname value='" .$plant['SynonymNames']."' ></td>";
            echo "<td>" . "<input type=text name=uspecies value='" .$plant['Species']."' ></td>";
            echo "<td>" . "<input type=text name=uprop value='" .$plant['Propagation']."' ></td>";
            echo "<td>" . "<input type=file name=uimage></td>";
            echo "<td>" . '<img class="crop2" src="data:image/jpeg;base64,'. base64_encode( $plant['Image'] ).'"/>'." </td>";
            echo "<td>" . "<input type=number name=uheight value='" .$plant['Height']."' ></td>";
            echo "<td>" . "<input type=text name=utreeclass value='" .$plant['TreeClass']."' ></td>";
            echo "<td>" . "<input type=text name=ulifecycle value='" .$plant['Lifecycle']."' ></td>";
            echo "<td>" . "<input type=hidden name=uplantid value='" .$plant['PlantID']."' ></td>";
            echo "<td>" . "<input type=submit name=update value=Update" . " ></td>";
            echo "</tr>";




            echo "</form>";
            }//end while
            mysql_close($conn);
        ?>