Ich habe 2 Probleme, mein erstes Problem ist, dass ich einen Fehler mit meinem PHP-Skript habe. Es gib mir im Grunde diesesMeine SQL-Abfrage funktioniert nicht + Einfügen eines Bildes in MariaDB
Fatal error: Uncaught Error: Cannot pass parameter 2 by reference in /customers/1/d/9/the-scientist.fr/httpd.www/api/addPost.php:30 Stack trace: #0 {main} thrown in /customers/1/d/9/the-scientist.fr/httpd.www/api/addPost.php on line 30
Und mein zweites Problem ist, dass ich versuche, ein Bild in einer Reihe in MariaDB einzufügen, ich die gleiche Sache wie phpMyAdmin für die Bild-Aufnahme in einer BLOB-Reihe tun mag. Also, das ist mein PHP-Skript ist:
<?php
try
{
$db = new PDO('mysql:host=the-scientist.fr.mysql;dbname=the_scientist_fr_appli_posts;charset=utf8', 'the_scientist_fr_appli_posts', 'arthur2205');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// $security = new White\Security;
$post = $_POST;
$img = base64_encode(file_get_contents($_FILES['img']['tmp_name']));
$title = addslashes($post['title']);
$description = addslashes($post['description']);
$fullDesc = addslashes($post['full']);
// if (!empty($title) & !empty($description) & !empty($fullDesc) & !empty($img)) {
// }
// else {
// // header("Location: form.php?error=Fill the form!");
// }
$stmt = $db->prepare("INSERT INTO posts (title, description, img, fullDesc, likes) VALUES (:title, :description, :img, :fullDesc, :likes)");
$stmt->bindParam(':title', $title);
$stmt->bindParam(':description', $description);
$stmt->bindParam(':img', $img);
$stmt->bindParam(':fullDesc', $fullDesc);
$stmt->bindParam(':likes', 0);
$stmt->execute();
// header("Access-Control-Allow-Origin: *");
header("Location: form.php?error=$sql");
Auch ist dies die Form:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionic/1.3.2/css/ionic.min.css">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<form enctype="multipart/form-data" class="form" id="form" action="./addPost.php" method="POST">
<div class="list">
<label class="item item-input">
<input type="text" placeholder="Titre" class="AddPosttitle" name="title">
</label>
<label class="item item-input">
<input class="description" type="text" placeholder="Mot Clés" maxlength="60" name="description">
</label>
<label class="item item-input">
<div>
<span id='button_upload'>Image : </span>
<input type='file' class="img" name="img">
</div>
</label>
<label class="item item-input">
<textarea placeholder="Description" class="full" name="full"></textarea>
</label>
<div class="padding">
<button class="button button-block button-positive submit-btn" type="submit">
Envoyer
</button>
</div>
</div>
</form>
<style type="text/css">
.form {
background: #FFF;
}
</style>
<?php
if (!empty($_GET['error'])){
?>
<script type="text/javascript">
function findGetParameter(parameterName) {
var result = null,
tmp = [];
var items = location.search.substr(1).split("&");
for (var index = 0; index < items.length; index++) {
tmp = items[index].split("=");
if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);
}
return result;
}
alert(findGetParameter("error"));
</script><?php
}
?>
Ich denke, dass mein Problem an dieser Stelle, ist ziemlich klar, wenn Sie weitere Informationen benötigen, wenden Sie sich in der Kommentarabschnitt.
ich weiß nicht, ob dies ein Online-Test-Problem. Sie sollten jedoch in Betracht ziehen, die legale PDO-Verbindung nicht in eine Datenbank zu stellen. (Wenn das die legit Verbindung ist) –
Über Ihr zweites Problem: Sie haben gerade angegeben, was Sie tun möchten und den Code, den Sie verwenden, aber nicht, was das Problem ist. Funktioniert der Insert nicht, sind die Daten nicht das was du erwartest, etc.? – jeroen
@ B.Dionys Keine Sorge, ich weiß, was ich mache, Sie können nur von meinem Server auf den MariaDB-Server zugreifen. –