2013-10-03 5 views
1

Je suis seulement nouveau dans la programmation et je ne sais pas quel est le problème dans mon code. les données que j'entre dans les tblins sont enregistrées mais mes données dans tbluser ne vont pas dans ma base de données. mais quand j'essaie de supprimer la requête d'insertion pour mes tblins, les données que je veux entrer dans tbluser peuvent être enregistrées dans ma base de données. que dois-je faire pour que mes deux tables puissent enregistrer toutes les données que j'entre après avoir cliqué sur soumettre dans ma page? Merci.php sql insérer dans le tableau

$usr="INSERT INTO tbluser(username,password,type) VALUES('".$_POST['txtuname']."','".$_POST['txtpass']."','".$_POST['type']."')"; 
$ins="INSERT INTO tblins(insLN,insFM,insMN,insadd,insCN,insemail,insbdate) VALUES('".$_POST['txtLN']."','".$_POST['txtFN']."','".$_POST['txtMN']."','".$_POST['txtadd']."','".$_POST['txtCN']."','".$_POST['txtemail']."','".$bdate."')"; 

merci pour tous les conseils monsieur. : D Je suis actuellement prêt sur ce qu'est l'injection sql. J'espère en apprendre plus. : D

Voici mon code complet.

<?php 
include("connect.php"); 
if(isset($_POST['txtpass']) && isset($_POST['txtrepass'])){ 

        $password1=mysql_real_escape_string($_POST['txtpass']); 
        $password2=mysql_real_escape_string($_POST['txtrepass']); 

        if($password1==$password2){ 



           $typeopt=$_POST['type']; 

           $bdate=$_POST['year']."-".$_POST['month']."-".$_POST['day']; 

           switch($typeopt){ 
             case 'ins': 


             $usr=mysql_query("INSERT INTO tbluser(username,password,type) VALUES('".$_POST['txtuname']."','".$_POST['txtpass']."','".$_POST['type']."')"); 

             $ins=mysql_query("INSERT INTO tblins(insLN,insFM,insMN,insadd,insCN,insemail,insbdate) VALUES('".$_POST['txtLN']."','".$_POST['txtFN']."','".$_POST['txtMN']."','".$_POST['txtadd']."','".$_POST['txtCN']."','".$_POST['txtemail']."','".$bdate."')"); 


             if(mysqli_query($con,$ins)) { 
              echo"success"; 
             } 
             else{ 
              echo"fail to register"; 
             } 

             break; 

             case 'student': 
             $std="INSERT INTO tblstudent(studLN,studFN,studMN,studBDate,studemail,studadd,studCN)"; 
             $usr="INSERT INTO tbluser(username,password,type)"; 
             $usr=$usr."VALUES('".$_POST['txtuname']."',"; 
             $usr=$usr."'".$_POST['txtpass']."',"; 
             $usr=$usr."'".$_POST['type']."')"; 

             $std=$std."VALUES('".$_POST['txtLN']."',"; 
             $std=$std."'".$_POST['txtFN']."',"; 
             $std=$std."'".$_POST['txtMN']."',"; 
             $std=$std."'".$bdate."',"; 
             $std=$std."'".$_POST['txtemail']."',"; 
             $std=$std."'".$_POST['txtadd']."',"; 
             $std=$std."'".$_POST['txtCN']."')"; 

             if(mysqli_query($con,$std)) { 
              echo"success"; 
             } 
             else{ 
              echo"fail to register"; 
             } 

           } 

        } 
        else{ 
         echo"<form>"; 
         echo "Password doesn't match. Try registering again."; 
         echo "<input type=submit formaction=register.php value=back>"; 
         echo"</form>"; 
        } 
       } 

?>

+3

Pouvez-vous ajouter le code où vous essayez d'écrire ceux-ci dans la base de données? – andrewsi

+1

Vous devriez vérifier les erreurs PHP ou les erreurs MySQL. Il y a probablement un message d'erreur quelque part qui vous dit * exactement * ce qui ne va pas. En outre, votre code est * largement ouvert * aux attaques par injection SQL. Vous voudrez lire et comprendre ceci: http://php.net/manual/en/security.database.sql-injection.php – David

+1

cela devrait être votre erreur de connexion de base de données. collez votre code complet ici –

Répondre

3

D'abord, la façon dont vous construisez vos requêtes est très sujette à des erreurs et Injections SQL.

Que diriez-vous quelque chose d'un peu plus propre, comme:

$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'); 
$stmt = $db->prepare("INSERT INTO table(field1,field2,field3,field4,field5) VALUES(:field1,:field2,:field3,:field4,:field5)"); 
$stmt->execute(array(':field1' => $field1, ':field2' => $field2, ':field3' => $field3, ':field4' => $field4, ':field5' => $field5)); 

Et assurez-vous de vérifier les messages d'erreur.

+0

que signifie PDO monsieur? –

+1

@benarylagadan - http://php.net/manual/fr/book.pdo.php – andrewsi

+0

@benarylagadan lire ceci aussi: http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers –