2014-11-16 6 views
-1

Вставка данных в базу данных mysql через php.Данные не вставляются в базу данных mysql через php-скрипт

<?php 

    session_start(); 

    $username1=$_GET['uname']; 
    $pwd1=$_GET['pwd']; 


    mysql_connect("localhost","root","")or die("cannot connect to my sql"); 
    mysql_select_db("webapp")or die("cannot connect database webapp"); 

    // CHANGE QUERY FOR INSERT 
    $sql="INSERT INTO login (uname, pwd) VALUES ('$username1', '$pwd1')"; 



    //$sql = "INSERT INTO login ". 
     // "(uname,pwd) ". 
      //"VALUES ". 
      //"('$username1','$pwd1')"; 


    // EXECUTE QUERY AND GET RESULT IN $RESULT 
    $result=mysql_query($sql); 

    //THIS TIME WE ARE NOT CHECKING $COUNT 
    if($result) 
    { 
    echo "You have successfully Inserted your new record"; 
    } 
    else 
    { 
    echo "Operation Failure please re-attempt"; 
    } 

?> 

Когда я выполнить этот скрипт, не вставляя значения в базе данных .. Database view in XAMPP

+6

Здравствуйте, из вашего дружественного соседства SQL-инъекция – AlienWebguy

+0

Ваши сообщения об ошибках срабатывают? – schroeder

+0

Как правило, неверно использовать поля имени пользователя и пароля с помощью метода GET, поскольку они отображаются в строке URL. Вместо этого используйте POST (он не зашифрован, но, по крайней мере, он не отображается в URL-адресе) – user2435860

ответ

0

Ваш код кажется вполне в состоянии функционировать намеченным. Другие пользователи упомянули, что лучше использовать POST вместо GET. Я также хотел бы добавить, что вы должны дезинформировать эти материалы.

Я скопировал ваш код на моем собственном сервере. Он работает нормально. Поэтому я рекомендую вам вернуться к тому, что вы не используете пароль для своего пользователя root (Connecting to mysql in xampp without password). Я бы дважды проверял правильность имен и полей справочной таблицы. Я хотел бы удвоить проверку полномочия для записи в базу данных и, возможно, распечатывать ошибки PHP на страницу ....

error_reporting(E_ALL); ini_set('display_errors', 1); 

Наконец, включить ведение журнала тузды, если не уже: http://www.pontikis.net/blog/how-and-when-to-enable-mysql-logs

Проверьте ваш веб-сервер log (зависит от вашей настройки) и журнала сервера, чтобы узнать, выводились ли ошибки в журналы. Ваш код должен работать.

А также просто распечатать вашу строку запроса, чтобы увидеть, если он выходит, как и ожидался:

print($sql); exit; 

Интересно, если вы получаете что-нибудь, выводимые на экран, или если вы фактически получаете «Вы успешно Поставлены ваш новый рекорд ». Конечно, это будет первый порт захода, что-то не так. Возможно, $ result всегда истинно/содержит данные о ресурсах независимо от того, работал ли он в mysql или нет. Поэтому я также распечатал массив ресурсов результата, чтобы увидеть, что было действительно возвращено.

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