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