我在更新图像时遇到问题。将图像发送到服务器并插入新记录运行没有问题,但在编辑照片时尚未编辑,并且向数据库中抛出的数据仅是文本和不负责图片的记录。预先感谢您的帮助
形式
<?php
//1. polaczenie z baza danych
//polaczenie z baza danych + ustawienie kodowania na utf8
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "3edcvfr4";
$dbname = "dw_bookstore";
$connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
//sprawdzenie polaczenia
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
//zmaiana znako na utf8
if (!mysqli_set_charset($connection, "utf8")) {
printf("Error loading character set utf8: %s\n", mysqli_error($connection));
} else {
printf("Kodowanie ustawione na: %s\n", mysqli_character_set_name($connection));
}
?>
<?php
// get ID
@$id = $_GET['id'];
@$query = "SELECT * FROM photographs WHERE id = '$id' ";
//pokazuje co zostalo zmienione
echo $query;
$result = mysqli_query($connection, $query);
if (!$result) {
die("zapytanie sie nie powiodlo");
}
$row = mysqli_fetch_array($result);
?>
<?php
//if (!id) {
// redirect_to("costam.php");
// }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Update Form</title>
</head>
<body>
<form action="database_update_action.php" method="post" enctype="multipart/form-data" name="form1" target="_blank">
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td>ID:</td>
<td><input name="id" type="text" id="id" value="<?php echo $row['id'];?>"></td>
</tr>
<tr>
<td>filename</td>
<td><label for="filename"></label>
<input name="filename" type="file" id="filename" value="<?php echo $row['filename'];?>"></td>
</tr>
<tr>
<td>type</td>
<td><label for="type"></label>
<input name="type" type="text" id="type" value="<?php echo $row['type'];?>"></td>
</tr>
<tr>
<td>size</td>
<td><label for="size"></label>
<input name="size" type="text" id="size" value="<?php echo $row['size'];?>"></td>
</tr>
<tr>
<td>caption</td>
<td><label for="caption"></label>
<input name="caption" type="text" id="caption" value="<?php echo $row['caption'];?>"></td>
</tr>
<tr>
<td>caption_2</td>
<td><label for="caption_2"></label>
<input name="caption_2" type="text" id="caption_2" value="<?php echo $row['caption_2'];?>"></td>
</tr>
<tr>
<td>txt</td>
<td><label for="txt"></label>
<textarea name="txt" id="txt" cols="45" rows="5"><?php echo $row['txt']; ?></textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" id="submit" value="update"></td>
</tr>
</table>
</form>
<?php
//4. release returned data
//mysqli_free_result($result);
?>
</body>
</html>
<?php
// 5. Zamkniecie bazy
mysqli_close($connection);
?>
行动
<?php
//1. polaczenie z baza danych
//polaczenie z baza danych + ustawienie kodowania na utf8
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "3edcvfr4";
$dbname = "dw_bookstore";
$connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
//sprawdzenie polaczenia
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
//zmaiana znako na utf8
if (!mysqli_set_charset($connection, "utf8")) {
printf("Error loading character set utf8: %s\n", mysqli_error($connection));
} else {
printf("Kodowanie ustawione na: %s\n", mysqli_character_set_name($connection));
}
?>
<?php
//2. przeslanie zdjecia wraz z danymi
@$path = $_FILES["file"]["name"];
@$type = $_FILES["file"]["type"];
@$size = $_FILES["file"]["size"];
$id = $_POST["id"];
$caption = $_POST["caption"];
$caption_2 = $_POST["caption_2"];
$txt = $_POST["txt"];
// przyklad - by moc wpisac 'costam' - tylko txt, nie "file" i "int"
$caption = mysqli_real_escape_string($connection, $caption);
$caption_2 = mysqli_real_escape_string($connection, $caption_2);
$txt = mysqli_real_escape_string($connection, $txt);
// 2. Perform database query
$query = "UPDATE photographs SET ";
$query .= "id = '{$id}', ";
$query .= "filename = '{$path}', ";
$query .= "size = '{$size}', ";
$query .= "type = '{$type}', ";
$query .= "caption = '{$caption}', ";
$query .= "caption_2 = '{$caption_2}', ";
$query .= "txt = '{$txt}' ";
$query .= "WHERE id = {$id}";
echo $query;
//$query = "INSERT INTO photographs (";
//$query .= " filename, type, size, caption, caption_2, txt";
//$query .= ") VALUES (";
//$query .= " '{$path}', '{$type}', '{$size}', '{$caption}', '{$caption_2}', '{$txt}'";
//$query .= ")";
$result = mysqli_query($connection, $query);
if ($result) {
// Success
// redirect_to("somepage.php");
echo " Sukces! Dane zostaly przeslane na serwer. ";
} else {
// Failure
// $message = "Subject creation failed";
die("Przeslanie danych nie powiodlo sie. " . mysqli_error($connection));
if(isset($_POST['submit'])){
if (((@$_FILES["file"]["type"] == "image/gif")
|| (@$_FILES["file"]["type"] == "image/jpeg")
|| (@$_FILES["file"]["type"] == "image/JPEG")
|| (@$_FILES["file"]["type"] == "image/jpg")
|| (@$_FILES["file"]["type"] == "image/png")
|| (@$_FILES["file"]["type"] == "image/pjpeg"))
&& (@$_FILES["file"]["size"] < 600000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
if (file_exists("../images/" . $_FILES["file"]["name"])){
echo $_FILES["file"]["name"] . " to zdjecie juz istnieje. ";
}
else{
move_uploaded_file($_FILES["file"]["tmp_name"], "../images/" . $_FILES["file"]["name"]);
echo " Przeslane do katalogu : " . "images/" . $_FILES["file"]["name"];
}
}
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Update Action</title>
</head>
<body>
</body>
</html>
<?php
// 5. Zamkniecie polaczenia
mysqli_close($connection);
?>