Преобразование PHP-кода с помощью mysqli()

#php #mysql #mysqli

#php #mysql #mysqli

Вопрос:

Преобразуйте следующий PHP-код с помощью mysqli().

Следующий код не работает в php 7, и я не знаю, как использовать mysqli (). Итак, кто-нибудь может помочь изменить следующий код с помощью mysqli ().


Следующий код предназначен для подключения базы данных для добавления ответа на форум. Здесь я пытаюсь подключиться к своему локальному серверу с помощью xampp и выбрать database (здесь db_name = «test1»). Затем я пытаюсь получить значение идентификатора, отправленного из скрытого поля, и найти наибольшее число ответов.После этого он добавит 1 к самому большому номеру ответа и сохранит его в имени переменной «$ Max_id», а если ответа еще нет, установит его = 1. Затем он снова получит значения, отправленные из формы, и создаст дату и время.После этого он вставит ответ.Если добавлен новый ответ, добавьте значение 1 в столбец ответа, наконец, соединение будет закрыто.

    <?php

$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test1"; // Database name
$tbl_name="forum_answer"; // Table name

// Connect to server and select databse.


mysql_connect("$host", "$username", "$password")or die("cannot connect");
    mysql_select_db("$db_name")or die("cannot select DB");

// Get value of id that sent from hidden field
$id=$_POST['id'];

// Find highest answer number.
$sql="SELECT MAX(a_id) AS Maxa_id FROM $tbl_name WHERE question_id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);

// add   1 to highest answer number and keep it in variable name "$Max_id". if there no answer yet set it = 1
if ($rows) {
$Max_id = $rows['Maxa_id'] 1;
}
else {
$Max_id = 1;
}

// get values that sent from form
$a_name=$_POST['a_name'];
$a_email=$_POST['a_email'];
$a_answer=$_POST['a_answer'];

$datetime=date("d/m/y H:i:s"); // create date and time


// Insert answer
$sql2="INSERT INTO $tbl_name(question_id, a_id, a_name, a_email, a_answer, a_datetime)VALUES('$id', '$Max_id', '$a_name', '$a_email', '$a_answer', '$datetime')";
$result2=mysql_query($sql2);

if($result2){
echo "Successful<BR>";
echo "<a href='view_topic.php?id=".$id."'>View your answer</a>";


// If added new answer, add value  1 in reply column
$tbl_name2="forum_question";
$sql3="UPDATE $tbl_name2 SET reply='$Max_id' WHERE id='$id'";
$result3=mysql_query($sql3);

}
else {
echo "ERROR";
}

// Close connection

mysql_close();
?>
  

Комментарии:

1. Добро пожаловать в Stack Overflow. К сожалению, просить людей написать код для вас здесь не по теме.

2. Я не говорю людям писать здесь весь код. Я прошу людей сказать мне, что я должен изменить и где я должен измениться.

3. вам следует изменить функции mysql. Где угодно. Надеюсь, теперь это понятно

Ответ №1:

 //DB Connection
$dbserver    = "...";
$dbusername  = "...";
$dbpassword  = "...";
$db          = "...";

//create Connnection
$conn = new mysqli($dbserver, $dbusername, $dbpassword, $db);

//check Connection
if($conn->connect_error)
{
    die("connection failed: ".$conn->connect_error);
}
  

И

 $sql="";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
  

Измените на

 $sql = "";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
  

также обратите внимание на

 mysql_close();
  

Комментарии:

1. Чтобы закрыть соединение

2. mysqli_close($conn); должно быть use или mysql_close(); должно быть use.