PHP MySQL Вставить данные

0

Я пытаюсь вставить данные в таблицу в MySQL. Я нашел/модифицировал некоторый код из w3Schools и все еще не мог заставить его работать. Вот что я до сих пор:

<?php
$rusername=$_POST['username']; 
$rname=$_POST['name'];
$remail=$_POST['emailadr'];
$rpassword=$_POST['pass'];
$rconfirmpassword=$_POST['cpass'];

if ($rpassword==$rconfirmpassword) {

    $con = mysql_connect("host","user","password");
    if (!$con)
     {
         die('Could not connect: ' . mysql_error());
     }
        mysql_select_db("mydbname ", $con);
    }

    mysql_query("INSERT INTO members (id, username, password)
    VALUES ('4', $rusername, $rpassword)");


?>

Я что-то ошибся? По моему мнению, "члены" - это имя таблицы. Если кто-то знает, что не так, я ценю помощь.

Спасибо

  • 0
    Почему вы добавляете 4 в качестве идентификатора? Просто поставьте id как автоинкремент, и вам больше не придется с этим сталкиваться. Кроме того, id должен быть целым числом, поэтому нет необходимости использовать там кавычки
  • 2
    Это уязвимость SQL-инъекций. Пожалуйста, используйте параметризованные запросы (см. Документацию PHP для PDO: php.net/pdo ) или, по крайней мере, экранирующий ввод с помощью функции, подобной mysql_real_escape_string .
Показать ещё 2 комментария
Теги:
post

2 ответа

4
Лучший ответ

Запрос, полученный в результате вашего кода:

INSERT INTO members (id, username, password) VALUES ('4', rusername, rpassword)

Обратите внимание, что строка SQL должна быть окружена '.

Итак, обновите свой код:

mysql_query("INSERT INTO members (id, username, password)
             VALUES ('4', '$rusername', '$rpassword')");
  • 0
    Я обновил его, но я все еще не вижу новый список в БД.
  • 0
    пожалуйста, разместите вашу схему БД
Показать ещё 1 комментарий
0

И имя вашей базы данных?

mysql_select_db("mydbname ", $con);

Даже если он называется mydbname, там есть странное пространство char..

Вы также можете сделать

mysql_query("use mydbname", $con);

ИЗМЕНИТЬ

Попробуйте включить в запрос флаг подключения к базе данных, а также заменить "4" (что, если nico сказал, что это ключ автоинкремента [id], он должен быть целым числом без кавычек) с помощью null:

mysql_query("INSERT INTO members VALUES
            (null, '$rusername', '$rpassword');", $con);
  • 0
    Я изменяю это так, чтобы было легче читать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню