0
votes

Comment insérer sur mysql avec php et l'écho

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>

  1. post_data = c'est une demande postale de l'utilisateur. LI>
  2. Nom d'utilisateur = à partir d'une autre table principale: utilisateurs li>
  3. user_id = à partir d'une autre table principale: utilisateurs li>
  4. post_id = automatique. li> ol>

    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>
    


5 commentaires

Où Post =: Posts_Data Vous n'avez aucune colonne nommée POST dans votre description de la table.


Pour votre information, vous ne pouvez pas "Insérer à phpmyadmin" , il s'agit d'un outil Utilisé pour gérer les bases de données MySQL, comme MySQL Workbench


Vous utilisez également : posts_data dans votre requête mais utilisez : post_data 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


4 Réponses :


0
votes

Votre HTML est tout faux. xxx pré>

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>


0 commentaires

0
votes

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));?>


1 commentaires

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



0
votes

Laquelle des lignes est la ligne 15? est-ce le curseur $ = $ mysqldb-> préparer ("insertion dans la valeur des messages (post) (: post_data)");

car si vous voulez peut-être trouver un moyen de trouver un moyen de trouver un moyen de Définition de vous $ POST variable. Jetez un coup d'œil à votre code, vous définissez $ post à l'intérieur de l'instruction if () {} et donc quand il essaie d'exécuter les lignes ci-dessous: < Pré> xxx

Votre $ POST La variable est vide.


2 commentaires

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



0
votes

"Insert dans les messages (poste) Valeur (: post_data)" doit être remplacé par "Insérer dans les messages (post_data) (: post_data)" . .

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.


0 commentaires