2016-07-13 4 views
0

Я пытаюсь вставить запись из моей формы в базу данных, но после нажатия на нее она показывает мне: «У вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее вашему версия сервера MySQL для правого синтаксической ошибки».... пожалуйста, помогите мнеКак вставить записи в базу данных

<?php 
include('data_conn.php'); 

if(isset($_POST['subm'])){ 

    $email = mysql_real_escape_string($_POST['email']); 
$query = "SELECT * FROM login WHERE email='$email'"; 
    $result = mysql_query($query) or die(mysql_error()); 

    if (mysql_num_rows($result)) { 
     echo '<script language="javascript">'; 
    echo 'alert("Email is Already Exist...."); location.href="signup.php"'; 
    echo '</script>'; 
    } 
    else { 
     $f_name = $_POST['f_name']; 

     $c_name = $_POST['c_name']; 
     $c_add = $_POST['c_add']; 
     $mob = $_POST['mob']; 
     $email = $_POST['email']; 
     $password = $_POST['password']; 



     $query = "INSERT INTO login (first_name,company_name,company_add,mob,email,password) VALUES ('$f_name,'$c_name','$c_add','$mob','$email','$password')"; 


     $result = mysql_query($query) or die(mysql_error()); 


     if($result==1) 
    { 
     echo '<script language="javascript">'; 
    echo 'alert("successfully registered!!!"); location.href="signup.php"'; 
    echo '</script>'; 
    } 
    else 
    { 
     echo '<script language="javascript">'; 
    echo 'alert("Something Went Wrong!!! :("); location.href="signup.php"'; 
    echo '</script>'; 
    } 
    } 
} 
?> 
+0

mysql_ * функции устарели и были удалены из PHP 7. Вам следует использовать более современную библиотеку, такую ​​как mysqli или PDO – GordonM

ответ

1

Изменение ниже линии

$query = "INSERT INTO login (first_name,company_name,company_add,mob,email,password) VALUES ('$f_name,'$c_name','$c_add','$mob','$email','$password')"; 

для этого

$query = "INSERT INTO login (first_name,company_name,company_add,mob,email,password) VALUES ('$f_name','$c_name','$c_add','$mob','$email','$password')"; 

Проблема заключается в том, что вы добавили только одну ' к переменной $f_name. Просто сделайте это как '$f_name', и он будет работать

+0

Thnx ... это работает! – Rkboss

+0

@Rkboss, с удовольствием. Примите ответ :) – Arun

0

Вместо использования значений прямой подстановки вы можете использовать ниже методы, чтобы избежать инъекции sql.

Вы в основном есть два варианта для достижения этой цели:

1) Использование PDO (для любого поддерживаемого драйвера базы данных):

$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name'); 

$stmt->execute(array('name' => $name)); 

foreach ($stmt as $row) { 
    // do something with $row 
} 

2) Использование MySQLi (для MySQL):

$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?'); 
$stmt->bind_param('s', $name); 

$stmt->execute(); 

$result = $stmt->get_result(); 
while ($row = $result->fetch_assoc()) { 
    // do something with $row 
} 

См. How can I prevent SQL injection in PHP?

0

Синтаксис er ROR.
Try:

$query = "INSERT INTO login (first_name,company_name,company_add,mob,email,password) VALUES ('$f_name','$c_name','$c_add','$mob','$email','$password')"; 

вместо:

$query = "INSERT INTO login (first_name,company_name,company_add,mob,email,password) VALUES ('$f_name,'$c_name','$c_add','$mob','$email','$password')"; 

Отсутствующие одиночные кавычки в '$f_name'.

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