Je suis vraiment nouveau à PHP et j'ai besoin d'aide.
Je veux construire un forum où vous pouvez télécharger des messages et des images. P>
maintenant, j'ai besoin d'aide avec la connexion entre mon code et ma base de données MySQL. P>
J'utilise mysql avec la table fédérale: p>
Table principale: "Posts" P>
Je veux poster les données que je reçois de l'utilisateur et je ne sais pas vraiment quel est le problème. p>
Ceci est le code PHP: P>
div class="input-group">
<input id="msg" type="text" method="POST" class="form-control" name="msg" placeholder="Write your message here...">
<span class="input-group-addon"><button id="send_post">Send</button></span>
</div>
4 Réponses :
Votre HTML est tout faux. La méthode est un attribut sur la balise de formulaire, pas l'entrée. p> <form action="/youraction" method="POST" />
<input id="msg" type="text" method="POST" class="form-control" name="msg" placeholder="Write your message here...">
</form>
Méthode peut-être votre formulaire HTML est d'obtenir ou ...
changer
$ _ post ['msg']; code>
à
$ _ Demande ['MSG']; CODE> P> <?php
session_start();
$MySQLdb = new PDO("mysql:host=127.0.0.1;dbname=forum", "root", "");
$MySQLdb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$post ="";
if(isset($_REQUEST['msg'])){
$post = $_REQUEST['msg'];
$cursor = $MySQLdb->prepare("SELECT post_data FROM posts WHERE post=:posts_data");
$cursor->execute( array(":post_data"=>$post) );
}
$cursor = $MySQLdb->prepare("INSERT INTO posts (post) value (:post_data)");
$cursor->execute(array(":post_data"=>$post));?>
Je l'ai fait et j'ai obtenu: Erreur fatale: incuscence PDOException: SQLSTAT [42S22]: Colonne non trouvée: 1054 Colonne inconnue 'Post' in 'Liste des champs' dans C: \ Xampp \ htdocs \ Forum \ Main.PHP: 15 Trace de pile: # 0 C: \ xampp \ htdocs \ forum \ main.php (15): pdostatement-> exécuter (tableau) # 1 {main} jeté dans c: \ xampp \ htdocs \ forum \ main.php à la ligne 15
Laquelle des lignes est la ligne 15? est-ce le car si vous voulez peut-être trouver un moyen de trouver un moyen de trouver un moyen de Définition de vous Votre curseur $ = $ mysqldb-> préparer ("insertion dans la valeur des messages (post) (: post_data)"); code> $ POST code> variable. Jetez un coup d'œil à votre code, vous définissez $ post code> à l'intérieur de l'instruction if () {} code> et donc quand il essaie d'exécuter les lignes ci-dessous: P> < Pré> xxx pré> $ POST code> La variable est vide. p> p>
Je l'ai fait et j'ai obtenu cette erreur: erreur fatale: non capturaillée PODEEXCEPTION: SQLSTAT [42S22]: Colonne non trouvée: 1054 Colonne inconnue 'Post' in 'Liste des champs' dans C: \ Xampp \ htdocs \ Forum \ Main.php: 15 pile Trace: # 0 C: \ xampp \ htdocs \ forum \ main.php (15): pdostatement-> exécuter (tableau) # 1 {main} jeté dans c: \ Xampp \ htdocs \ forum \ main.php à la ligne 15
À l'exception de l'exception, la colonne postale ne fait pas partie de la table, vous devez crucher
"Insert dans les messages (poste) Valeur (: post_data)" doit être remplacé par Veuillez être consciente, qu'il peut arriver de nouvelles erreurs MySQL en fonction de la définition de votre table et des contraintes définies. p>
Où Post =: Posts_Data Code> Vous n'avez aucune colonne nomméePOST code> dans votre description de la table.Pour votre information, vous ne pouvez pas "Insérer à phpmyadmin" i>, il s'agit d'un outil Utilisé pour gérer les bases de données MySQL, comme MySQL Workbench i>
Vous utilisez également
: posts_data code> dans votre requête mais utilisez: post_data code> dans votre exécution. Ce sera la prochaine erreur que vous obtenez.Votre variable $ post est vide
Désolé que vous insérez dans la colonne postale au lieu de la colonne Post_Data, ce qui est votre nom de colonne dans les messages TBL