2016-02-24 1 views
0

Я использую PHP 7 и пытаюсь найти решение о том, как мой код должен быть из-за 3-х функций, которые я использую, которые были лишены текущей версия PHP 7.3 функции в вашем коде, которые устарели в текущей версии PHP 7

три функции:

mysql_close() 
mysql_query() 
mysql_select_db() 

Вот мой код:

<?php 
//mysql database connectivity 
//inserting form data into the database 
if(@$valid==true) 
{ 
$con= mysqli_connect("localhost","root","root"); 
mysql_select_db("usersignup", $con); 
@$a=$_POST['fname']; 
@$b=$_POST['lname']; 
@$c=$_POST['email']; 
@$d=$_POST['cell']; 
@$e=$_POST['add']; 
@$f=$_POST['age']; 
@$g=$_POST['gen']; 
@$i=$_POST['username']; 
@$j=$_POST['pass']; 
@$h=$_POST['mtype']; 
mysql_query("insert into user (FirstName,LastName,Email,CPhone,Address,Age,Gender,Username,Password,MType) values('$a','$b','$c','$d','$e','$f','$g','$i','$j','$h')"); 
header("Location:form1.php"); 
mysql_close($con); 
} 

?>

Я рассмотрел некоторые предлагаемые решения, которые предполагают использование расширения MySQLi или PDO_MySQL. Проблема заключается в том, что я не нашел практического способа реализовать это.

+0

Я не понимаю ваш ответ любезно объяснить это немного – John

+1

не смешивать 'mysql_ *' с 'mysqli_ *' или 'PDO'. Также очень плохая практика кодирования. пропуская ошибки через @, вы часто будете испытывать проблемы. –

+0

Я добавил код в вопросе вырезать и вставить и проверить. удалите отсюда. –

ответ

-1

То же самое, но с mysqli_ с той лишь разницей, что вы должны передать дб имя в mysqli_connect(... db name как в прошлом парам

// mysqli connect 
$con = mysqli_connect("localhost","root","root", "usersignup"); 

// mysqli query 
mysqli_query(" 
    insert into user 
    (FirstName,LastName,Email,CPhone,Address,Age,Gender,Username,Password,MType) 
    values('$a','$b','$c','$d','$e','$f','$g','$i','$j','$h') 
"); 

// connection close 
mysqli_close($con); 
+0

Что вы имеете в виду @Anant? – Armen

+0

Мы здесь не решаем логическую проблему кода (например, проверку правильности или mysql-инъекции) @Anant, мы решаем проблему с использованием проблемы с mysql и mysqli. – Armen

+0

Существует подтверждение того, что я не разместил здесь весь код. – John

0

Пожалуйста, используйте mysqli с prepared statements, его более безопасным.

$a=$_POST['fname']; 
$b=$_POST['lname']; 
$c=$_POST['email']; 
$d=$_POST['cell']; 
$e=$_POST['add']; 
$f=$_POST['age']; 
$g=$_POST['gen']; 
$i=$_POST['username']; 
$j=$_POST['pass']; 
$h=$_POST['mtype']; 

$query= $mysqli->prepare("insert into user (FirstName,LastName,Email,CPhone,Address,Age,Gender,Username,Password,MType) values(?,?,?,?,?,?,?,?,?)"); 

$query->bind_param('ssssssssss',$a,$b,$c,$d,$e,$f,$g,$i,$j,$h); 

if (!$query->execute()) 
{ 
    $flag = false; 
} 
+0

Зачем OP «попробуйте это»? *** Хороший ответ *** всегда будет объяснять, что было сделано, и почему это было сделано именно так, не только для OP, но и для будущих посетителей SO. –

+1

@JayBlanchard спасибо за предложения, я обновил ответ. –

0

PHP7 больше не поддерживает функции mysql_ *. Вместо этого вам нужно выбрать либо PDO, либо mysqli API. Вы можете использовать следующие функции mysqli для замены устаревших функций.

mysqli_select_db

mysqli_query

mysqli_close

Eg:

$link = mysqli_connect("localhost", "my_user", "my_password", "test"); 
mysqli_select_db($link, "world"); 
// SQL Logic goes here 
mysqli_close($link); 
0

Просто замените устаревшую функцию с новейшим.

mysql_close()  => mysqli_close() 
mysql_query()  => mysqli_query() 
mysql_select_db() => mysqli_select_db() 

так что ваш код будет:

<?php 
//mysql database connectivity 
//inserting form data into the database 
if(@$valid==true){ 
    $con= mysqli_connect("localhost","root","root"); 
    mysqli_select_db("usersignup", $con); 
    @$a=$_POST['fname']; 
    @$b=$_POST['lname']; 
    @$c=$_POST['email']; 
    @$d=$_POST['cell']; 
    @$e=$_POST['add']; 
    @$f=$_POST['age']; 
    @$g=$_POST['gen']; 
    @$i=$_POST['username']; 
    @$j=$_POST['pass']; 
    @$h=$_POST['mtype']; 
    mysqli_query("insert into user (FirstName,LastName,Email,CPhone,Address,Age,Gender,Username,Password,MType) values('$a','$b','$c','$d','$e','$f','$g','$i','$j','$h')"); 
    header("Location:form1.php"); 
    mysqli_close($con); 
} 
?> 
Смежные вопросы