Как подключить php к базе данных mysql?

Я делаю поисковую систему для веб-сайта, и я никогда раньше не использовал PHP, и я пытался подключить свою веб-страницу к базе данных mysql, используя этот код:

   $dbhost = 'hosthere';
   $dbuser = 'usernamehere';
   $dbpass = 'passwordhere';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   if(! $conn )
   {
     die('Could not connect: ' . mysql_error());
   }
   echo 'Connected successfully';

но я также читал, чтобы не использовать функции mysql_ *, так как вскоре они больше не будут использоваться, но я больше такого не видел.

Мой старый код для подключения:

  define('DB_SERVER', 'serverhere');
  define('DB_SERVER_USERNAME', 'usernamehere');
  define('DB_SERVER_PASSWORD', 'passwordhere');
  define('DB_DATABASE', 'databasehere');
  define('STORE_DB_TRANSACTIONS', 0);
  define('DEBUG', 0);

  db_connect() or die('Unable to connect to database server!');

Должен ли я просто придерживаться этого или использовать код сверху?

 Ivan Gabriele23 июн. 2016 г., 03:03
 k0pernikus23 июн. 2016 г., 02:45
Это специфично для mysql. Если вам нужна потенциальная независимость от поставщика базы данных, вы можете обратиться к таким инструментам, как Doctrine. Кроме того, поскольку вы строите поиск, вы можете захотеть изучить solr илиasticsearch, поскольку эти инструменты созданы для поиска.

Ответы на вопрос(2)

http://php.net/manual/en/function.mysql-connect.php

Вы должны использовать одно из расширений: MySQLi или PDO_MySQL

С MySQLi вы в основном добавляете i к новой версии вашего кода (не используйте старый код), дополнительную информацию можно найти здесь:http://php.net/manual/en/function.mysqli-connect.php, В противном случае, пожалуйста, посмотрите наhttp://php.net/manual/en/pdo.construct.php

Надеюсь это поможет.

вот, пожалуйста, используя PDO.

define("SQLHOST", "127.0.0.1");
define("SQLUSER", "login");
define("SQLPASS", "password");
define("SQLSGBD", "database");

$conn = new PDO('mysql:host=' . SQLHOST . ';dbname=' . SQLSGBD . ';charset=UTF8', SQLUSER, SQLPASS);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql1 = 'SELECT * FROM table where field1=?';
$stmt1 = $conn->prepare($sql1);

$field1="test";
$stmt1->bindParam(1, $field1, PDO::PARAM_STR);

try {
    $stmt1->execute();
    $result = $stmt1->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    if ($showError === true) {
        var_dump("error query 1:" . __LINE__ . "-------" . __FUNCTION__ . "-------" . $e->getMessage());
        exit;
    }
}
 GreatSUN23 июн. 2016 г., 02:35
Вы не должны использовать определение ... Это плохой стиль.
 harish sharma08 мар. 2019 г., 09:50
Есть ли альтернативаdefine?

Ваш ответ на вопрос