Я работаю над формой, использующей PHP для отправки электронной почты на мою учетную запись. Чтобы сэкономить место и отключить мою учетную запись почтового ящика, теперь я пытаюсь использовать тот же PHP для отправки информации на сервер MySQL для регистрации данных. Код, который я пытался выполнить, продолжает давать ту же ошибку:
Устаревший: mysql_connect (): расширение mysql устарело и будет удалено в будущем
Вот код PHP, который я сейчас пытаюсь использовать:
$host = 'localhost'; $username = 'root'; $password = ''; $dbname = 'on-boarding'; mysql_connect($host,$username,$password); mysql_select_db($dbname); mysql_query("INSERT INTO new_employees ('OnBoardedBy', 'EmployeeName', 'HomePhone') VALUES ('$onboarded_by','$employee_name','$home_phone')");
Вы должны использовать PDO или MySQLi. Я бы рекомендовал напрямую использовать PDO, а не MySQLi. PDO имеет лучшую интеграцию подготовленных заявлений. Делай это так:
try { $db = new PDO("mysql:host=".$host.";dbname=".$db.";charset=utf8", $user, $password); } catch(PDOException $e) { die("Unable to connect. Error: ".$e->getMessage()); } $link = $db->prepare("INSERT INTO new_employees (`OnBoardedBy`, `EmployeeName`, `HomePhone`) VALUES (?, ?, ?)"); $link->bindvalue(1, $onboarded_by); $link->bindvalue(2, $employee_name); $link->bindvalue(3, $home_phone); $link->execute(); $row = $link->fetch(PDO::FETCH_ASSOC);
edit: Позвольте мне добавить пример для подготовленного запроса.
PHP больше не будет поддерживать расширение MySQL. Рекомендуется использовать MySQLi или PDO.
$host = 'localhost'; $username = 'root'; $password = ''; $dbname = 'on-boarding'; $link = mysqli_connect('$host', '$username', '$password', '$dbname'); mysqli_query($link, "INSERT INTO new_employees (`OnBoardedBy`, `EmployeeName`, `HomePhone`) VALUES ('$onboarded_by','$employee_name','$home_phone')");
Подготовленные заявления намного безопаснее и избегают риска внедрения sql: http://php.net/manual/en/mysqli.prepare.php