Php 文件上载后出现意外结果
此代码用于更新数据库。它更新了所有内容,甚至成功上载了图像,但在图像上载后,整个页面变为空白,顶部只显示“Array()”。为什么呢Php 文件上载后出现意外结果,php,database,file-upload,Php,Database,File Upload,此代码用于更新数据库。它更新了所有内容,甚至成功上载了图像,但在图像上载后,整个页面变为空白,顶部只显示“Array()”。为什么呢 <?php if(!isset($_GET["prid"])){ header("Location: prjedit.php"); } else { $prid = intval($_GET["prid"]); $sqlprj = "SELECT * FROM projects WHERE id = ? LIMIT 1"; $
<?php
if(!isset($_GET["prid"])){
header("Location: prjedit.php");
}
else {
$prid = intval($_GET["prid"]);
$sqlprj = "SELECT * FROM projects WHERE id = ? LIMIT 1";
$statement = $db->prepare($sqlprj);
$statement->execute(array($prid));
$project = $statement->fetchObject();
//submitted form
if( (isset($_POST["title"])) && (isset($_POST["details"])) ) {
$title = $_POST['title'];
$desc = $_POST['descr'];
$details = $_POST['details'];
if(!empty($_FILES['image']['name'])) {
//update image
$file = basename($_FILES['image']['name']);
$dir = "projects/";
$target_path = $dir . basename($_FILES['image']['name']);
$tempname = $_FILES['image']['tmp_name'];
if(!file_exists($target_path)) {
if(move_uploaded_file($tempname, $target_path)) {
$sqlimg = "UPDATE projects SET image = ? WHERE id = ?";
$statement = $db->prepare($sqlimg);
$statement->execute(array($file, $prid));
if($statement->rowCount() > 0) {
try {
chdir('./projects/');
unlink($project->image);
chdir('..');
}
catch (Exception $e) {
$message = "Sorry image delete failed ";
echo $e->getMessage();
}
}
else {
die ($db->errorInfo());
}
}
else {
$message = "Sorry Image update failed";
}
}
else {
$message = "Sorry this image already exists but text";
}
}
// update project texts
$sqlupd = "UPDATE projects SET title = ?, descinfo = ?, details = ? WHERE id = ?";
$statement = $db->prepare($sqlupd);
$statement->execute(array($title, $desc, $details, $prid));
if($statement->rowCount()) {
$message = " Saved successfully";
}
else {
die($db->errorInfo());
}
}
}
?>
查看,它返回一个数组。
当你写die($db->errorInfo())时代码>它将尝试显示此数组
正如文档本身所建议的,您可以尝试print\r($db->errorInfo());死亡代码>并查看发生了什么。哦,谢谢:)它正在显示数组([0]=>00000[1]=>[2]=>)尝试显示来自所有die()的不同消息,以查看代码失败的位置。这不是一个SQL错误,您确定混合了$\u POST和$\u GET变量吗?(我知道这是可能的,但不确定您的表单是什么样子的。)错误来自上次更新部分,其中$sqlupd=“updateprojects SET title=?,descinfo=?,details=?where id=?”;但是如果我不上传图片,效果会很好。这不是一个错误。数据库中没有具有此ID的行。尝试显示此id并在数据库中手动检查是否存在现有行。Opps,我得到了它,将完全相同的信息保存到数据库中的同一行中会产生0行受影响的结果,如果没有为更新选择新图像,我的代码也会这样做:)