Napsal Pavel Janků;1592381
V database_connection.php máš nejspíše instancovaný objekt PDO do proměnné $connect, místo toho udělej
Potom ještě tě chci upozornit na to, že ikdyž máš "prepared" statements, nemáš je implementované správně. Kód je tedy náchylný na SQL injection. Správně místo proměnné se do kódu dá
a následně dosadíš proměnné metodou. Pak budeš mít ošetřenou alespoň tuto část.
Databázi mám takto:
$conn = mysqli_connect($servername, $dBUsername, $dBPassword, $dBName);
$conn -> set_charset("utf8");
if (!$conn) {
die("Chyba při připojení s databázi MySql: ".mysqli_connect_error() );
}
ale to nekomunikuje s kodem výše... i když to $connect změním na $conn...
---------- Příspěvek doplněn 31.07.2020 v 14:27 ----------
Chyba bude asi tady:
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
foreach($result as $row)
---------- Příspěvek doplněn 31.07.2020 v 14:31 ----------
Tak už jsem to vyřešil :) Kdyby to někdo potřeboval:
if(isset($_POST))
{
$old_name = get_old_image_name($conn, $_POST);
$file_array = explode(".", $old_name);
$file_extension = end($file_array);
$new_name = $_POST . '.' . $file_extension;
$sql = '';
if($old_name != $new_name)
{
$old_path = '../../uploads/' . $old_name;
$new_path = '../../uploads/' . $new_name;
if(rename($old_path, $new_path))
{
$sql = "
UPDATE soubory
SET image_name = '".$new_name."', image_description = '".$_POST."'
WHERE image_id = '".$_POST."'
";
}
}
else
{
$sql = "
UPDATE soubory
SET image_description = '".$_POST."'
WHERE image_id = '".$_POST."'
";
}
$result = $conn->query($sql);
}
function get_old_image_name($conn, $image_id)
{
$sql = "
SELECT image_name FROM soubory WHERE image_id = '".$image_id."'
";
$result = $conn->query($sql);
foreach($result as $row)
{
return $row;
}
}
?>
31. 7. 2020 14:22:39