我正在尝试将之前在MySQL中上传的pdf替换为另一个pdf。我创建了一个 href [edit]供用户选择pdf文件并链接到editDB.php,其中放置了查询更新。
这是edit.DB.php
<?php
// Connect to the database
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="is"; // Database name
$tbl_name="publication"; // Table name
if(isset($_POST['submit']) && $_FILES['userfile']['size'] > 0)
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
$conn = mysql_connect("$host", "$username", "$password");
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
连接数据库,获取file_id,获取更新的其他数据
$conn = mysql_connect("$host", "$username", "$password");
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
if (isset($_GET["id"]))
{
$id =$_GET["id"];
}
else
{
echo'failed';
}
mysql_select_db($db_name);
$title=mysql_real_escape_string($_POST['title']);
$author=mysql_real_escape_string($_POST['author']);
$year=mysql_real_escape_string($_POST['year']);
$abs=mysql_real_escape_string($_POST['abstract']);
在此查询
$query="update publication set title='".$title."', author='".$author."', year='".$year."' , abstract='".$abs."', file_name='".$fileName."', file_size='".$fileSize."', file_type='".$fileType."', content='".$content."' where file_id='$id'";
mysql_query($query) or die(mysql_error());
echo '<script type="text/javascript">alert("'.$title.' updated!");
window.location.href="publication.php";
</script>';
mysql_close($conn);
}
?>
我遇到的问题是,在我的编辑表单中输入更新的信息之后。数据成功导向editDB.php。弹出对话框显示更新的数据,但数据未更新数据库和显示信息的页面。我会感激任何帮助。感谢。
答案 0 :(得分:0)
而不是
if (isset($_GET["id"]))
{
$id =$_GET["id"];
}
else
{
echo'failed';
}
我将其更改为
if(isset($_POST['submit'])&& $_FILES['userfile']['size'] > 0)
{
$id =$_POST["id"];
当然,id必须正确传递,并确保id与你的数据库匹配。
此代码可以使用。希望能够帮助你们所有人。