2015-07-14 4 views
-3

У меня есть следующий код, но он вставляет две строки в базу данных mysql вместо одного. Может ли ypu взглянуть на код?Вставка php и mysql

С уважением.

  <?php 
      $name= $_POST['name']; 
        $password = $_POST['password']; 

      mysql_connect("localhost","username","mypass"); 


      mysql_select_db("databaseName"); 


      mysql_query($query ="insert into users(name,password) values ('$name','$password')"); 

      if (mysql_query($query) === TRUE) { 
       echo "Record saved"; 
      } else { 
       echo "Error"; 
      } 
      ?> 
+0

Убедитесь, что вы вызываете скрипт только один раз – Vatev

+6

Вы дважды запускаете mysql_query. Чего ты ожидал? –

+1

[Ваш скрипт подвергается риску для SQL-инъекций.] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –

ответ

1

Не называйте mysql_query() при назначении переменной $query. И не забывайте избегать ваших данных, так как вы не используете подготовленные заявления.

mysql_connect("localhost","username","mypass"); 
$name = mysql_real_escape_string($_POST['name']); 
$password = mysql_real_escape_string($_POST['password']); 

$query ="insert into users(name,password) values ('$name','$password')"; 

if (mysql_query($query)) { 
    echo "Record saved"; 
} else { 
    echo "Error: " . mysql_error(); 
} 
0

Dont использовать функцию mysql_query дважды, вы хотите проверить это, если заявление, то Dont называть его перед if пункта. Смотрите следующий код.

$query ="insert into users(name,password) values ('$name','$password')" 

if (mysql_query($query) === TRUE) { 
echo "Record saved"; 
} else { 
echo "Error"; 
} 
Смежные вопросы