2016-01-23 3 views
-2

Я хочу вставить данные в базу данных. Но когда я нажимаю кнопку сохранения, чем данные не попадают в базу данных. Я не понял, где я ошибся. Это мой PHP код:Данные не входят в базу данных, используя php

<?php 
$host = "localhost"; 
$user = "root"; 
$password =""; 
$database = "crud"; 
$conn = new mysqli($host, $user, $password); 
mysql_select_db($database); 

if(isset($_POST['btn-save'])) 
{ 
$first_name = $_POST['first_name']; 
$last_name = $_POST['last_name']; 
$city_name = $_POST['city_name']; 
$sql_query ="INSERT INTO users(first_name,last_name,user_city) VALUES('$first_name','$last_name','$city_name')"; 
    mysql_query($sql_query); 
} 
?> 
+4

Возможный дубликат [Могу ли я смешивать MySQL API в PHP?] (Http://stackoverflow.com/questions/17498216/can-i-mix-mysql-apis-in-php) –

+1

Вы смешиваете mysqli и mysql – RamRaider

ответ

1

Вы смешиваете mysqli и mysql методы ~ игнорирующей ныне устаревшую mysql_* набора функций и сосредоточиться на mysqli - узнать о подготовленных заявлениях, если вы хотите, чтобы предотвратить SQL инъекции.

Надеюсь, следующие данные должны вставить данные.

<?php 
    $host = "localhost"; 
    $user = "root"; 
    $password = ""; 
    $database = "crud"; 

    $conn = new mysqli($host, $user, $password, $database); 

    if(isset($_POST['btn-save'])){ 
     $first_name = $_POST['first_name']; 
     $last_name = $_POST['last_name']; 
     $city_name = $_POST['city_name']; 

     $sql ="INSERT INTO `users` (`first_name`,`last_name`,`user_city`) VALUES ('{$first_name}', '{$last_name}', '{$city_name}')"; 
     $res=$conn->query($sql); 
     if($res){ 
      /* all good */ 
     } 
     $conn->close(); 
    } 
?> 

Я упомянул prepared statements - следующий может быть использован (надеюсь без проблем) в месте выше $conn->query()! Основная идея заключается в том, что вы используете заполнитель в операторе SQL, а затем связать переменные этих заполнителей - верить или нет этот метод значительно уменьшить любой шанс SQL инъекции;/

$sql = "INSERT INTO `users` (`first_name`,`last_name`,`user_city`) VALUES (?, ?, ?)"; 

    $stmt = $conn->prepare($sql); 
    $stmt->bind_param('sss',$first_name,$last_name,$city_name); 
    $res=$stmt->execute(); 

    if($res){ 
     /* all good ~ display a message or set a var etc */ 
     $stmt->close(); 
    } 
    $conn->close(); 
Смежные вопросы