2013-10-03 5 views
1

Я только новичок в программировании, и я не знаю, в чем проблема в моем коде. данные, которые я вводил в tblins, записываются, но мои данные в tbluser не будут отображаться в моей базе данных. но когда я пытаюсь удалить запрос insert для моих tblins, данные, которые я хочу ввести в tbluser, могут быть записаны в моей базе данных. что я должен делать, чтобы мои две таблицы могли записывать все данные, которые я вводил после нажатия кнопки «Отправить» на моей странице? Благодарю.php sql insert в таблицу

$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."')"; 

спасибо за все советы сэр. : D В настоящее время я готов к использованию sql-инъекции. надеюсь узнать больше. : D

вот мой полный код.

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

Можете вы добавить код, где вы пытаетесь их записать, в базу данных? – andrewsi

+1

Вы должны проверить наличие ошибок PHP или ошибок MySQL. Вероятно, сообщение об ошибке где-то говорит вам * точно * что не так. Кроме того, ваш код * широко открыт * для SQL-инъекций. Вы захотите прочитать и понять это: http://php.net/manual/en/security.database.sql-injection.php – David

+1

, который должен быть причиной вашей ошибки подключения к базе данных. вставьте свой полный код здесь –

ответ

3

Во-первых, как вы строите ваши запросы очень склонны к ошибкам и SQL Инъекции.

Как о чем-то немного чище, таких как:

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

И убедитесь, что для проверки сообщений об ошибках.

+0

Что означает PDO сэр? –

+1

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

+0

@benarylagadan также читайте это: http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers –

Смежные вопросы