Raspbian PHP с MYSQL [дубликат]

var x = [4, 5, 6];
for (i = 0, j = x[i]; i < x.length; j = x[++i]) {
    console.log(i,j);
}

Много чище ...

80
задан Eric Leschinski 7 January 2016 в 22:50
поделиться

15 ответов

Есть несколько решений для вашей проблемы.

Способ с MySQLi будет таким:

<?php
$connection = mysqli_connect('localhost', 'username', 'password', 'database');

Выполнять запросы базы данных также просто и почти идентично старому путь:

<?php
// Old way
mysql_query('CREATE TEMPORARY TABLE `table`', $connection);
// New way
mysqli_query($connection, 'CREATE TEMPORARY TABLE `table`');

Отключить все устаревшие предупреждения, включая их из mysql _ *:

<?php
error_reporting(E_ALL ^ E_DEPRECATED);
120
ответ дан Tharindu Kumara 5 September 2018 в 07:28
поделиться

Ну, я просто столкнулся с таким сообщением сегодня, когда перешел на новый хостинг! в любом случае я попытался изменить «mySQL» на «mySQLi», но не работал, поэтому я сделал это:

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
# Turn off all error reporting
error_reporting(0);
$connect_myconn = "Database Connection";
$hostname_myconn = "localhost";
$database_myconn = "db name";
$username_myconn = "user name";
$password_myconn = "pass";
$myconn = mysql_connect($hostname_myconn, $username_myconn, $password_myconn) or die("<h1 style=margin:0;>A MySQL error has occurred.</h1><p><b>Your Query:</b> " . $connect_myconn . "<br /> <b>Error Number:</b> (" . mysql_errno() . ")</p>" . mysql_error());
mysql_select_db($database_myconn, $myconn);
?>

Фокус в том, чтобы отключить отчет об ошибках:)

# Turn off all error reporting
error_reporting(0);
0
ответ дан Al3abMizo Games 5 September 2018 в 07:28
поделиться

Добавление @ работает для меня!

Я тестировал с error_reporting(E_ALL ^ E_DEPRECATED);

-4
ответ дан brezanac 5 September 2018 в 07:28
поделиться

Предупреждение «устарело» вообще означает, что вы пытаетесь использовать устаревшую функцию. Это не означает, что ваш код не будет работать, но вы должны подумать о рефакторинге.

В вашем случае functons mysql_ устарели. Если вы хотите узнать больше об этом, вот хорошее объяснение уже: Почему я не должен использовать функции mysql_ * в PHP?

0
ответ дан Community 5 September 2018 в 07:28
поделиться

Чтобы подавить сообщение об устаревании только для этого (и оставайтесь в курсе других устареваний в коде), вы можете префикс подключения с помощью @:

<?php
$connect = @mysql_connect('localhost','root','');
mysql_select_db('dbname');
?> 
9
ответ дан IanMcL 5 September 2018 в 07:28
поделиться

Класс PDO заменяет эти методы. Пример для Mysql или MariaDB:

$BDD_SQL = new PDO('mysql:host='.BDD_SQL_SERVER.';dbname='.BDD_SQL_BASE.';charset=utf8', 
        BDD_SQL_LOGIN, BDD_SQL_PWD, 
        array(
          PDO::ATTR_EMULATE_PREPARES => false,
          PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //launch exception if error
          PDO::ATTR_DEFAULT_FETCH_MODE=> PDO::FETCH_ASSOC
                ));

Источник: PDO Class

0
ответ дан Karima Rafes 5 September 2018 в 07:28
поделиться

Устаревшие функции в PHP 5.5.x

Исходное расширение MySQL теперь устарело и будет генерировать ошибки E_DEPRECATED при подключении к базе данных. Вместо этого используйте расширения ** MYSQLi или PDO_MySQL . **

Синтаксис:

<?php
  $connect = mysqli_connect('localhost', 'user', 'password', 'dbname');

Кроме того, замените все mysql_* выполняет функцию mysqli_*

вместо

<?php
 $connect = mysql_connect('localhost','root','');
  mysql_select_db('dbname');
?> 
7
ответ дан Krish R 5 September 2018 в 07:28
поделиться

Это предупреждение отображается, поскольку появилось новое расширение. Он утверждает, что вы все еще можете использовать старый, но в некоторых случаях это невозможно.

Я покажу вам, как я делаю соединение с базой данных. Вам нужно просто изменить значения переменных.

Мой файл подключения: connection.php

<?php    
 $host='IP or Server Name (usually "localhost") ';
 $user='Database user';
 $password='Database password';
 $db='Database name';

 //PHP 5.4 o earlier (DEPRECATED)
 $con = mysql_connect($host,$user,$password) or exit("Connection Error");
 $connection = mysql_select_db($db, $con);

 //PHP 5.5 (New method)
 $connection =  mysqli_connect($host,$user,$password,$db);
?>

Расширение также изменяется при выполнении запроса.

Файл запроса: «example.php»

<?php
 //First I call for the connection
 require("connection.php");

 // ... Here code if you need do something ...

 $query = "Here the query you are going to perform";

 //QUERY PHP 5.4 o earlier (DEPRECATED)
 $result = mysql_query ($query) or exit("The query could not be performed");

 //QUERY PHP 5.5 (NEW EXTENSION)
 $result = mysqli_query ($query) or exit("The query could not be performed");    
?>

Этот способ использует MySQL Improved Extension, но вы можете использовать PDO (объекты данных PHP).

Первый метод может использоваться только с базами данных MySQL, но PDO может управлять различными типами баз данных.

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

Мой файл подключения PDO: «PDOconnection.php»

<?php
 $hostDb='mysql:host= "Here IP or Server Name";dbname="Database name" ';
 $user='Database user';
 $password='Database password';

 $connection = new PDO($hostDb, $user, $password);
?>

Файл запроса (PDO): «example.php»

<?php
 $query = "Here the query you are going to perform";
 $result=$connection->$query;
?>

Чтобы закончить, просто скажите, что, конечно, вы можете скрыть предупреждение, но это не очень хорошая идея, потому что может помочь вам в будущем сэкономить время, если произойдет ошибка (все мы знаем теорию, но иногда вы работаете много часов. .. мозг там нет ^^).

3
ответ дан Ralf Bönning 5 September 2018 в 07:28
поделиться

Вы можете удалить предупреждение, добавив '@' перед mysql_connect.

@mysql_connect('localhost','root','');

, но, как предупреждает вам предупреждение, используйте mysqli или PDO, поскольку расширение mysql будет удалено в будущем .

28
ответ дан Rebirth 5 September 2018 в 07:28
поделиться

поместите это на свою php-страницу.

ini_set("error_reporting", E_ALL & ~E_DEPRECATED); 
-2
ответ дан Shan 5 September 2018 в 07:28
поделиться

Это потому, что вы используете PHP 5.5 или ваш веб-сервер был обновлен до 5.5.0.

Функции mysql_* устарели с 5.5.0

enter image description here [/g2]

Source

3
ответ дан Shankar Damodaran 5 September 2018 в 07:28
поделиться

mysql_ *, официально устарел с PHP v5.5.0 и будет удален в будущем.

Используйте функцию mysqli _ * или pdo

Прочитать Oracle Преобразование в MySQLi

1
ответ дан Simone Nigro 5 September 2018 в 07:28
поделиться

Если вы сделали свое кодирование, тогда

ini_set("error_reporting", E_ALL & ~E_DEPRECATED); 

является хорошим вариантом, но если вы в начале, то определенно вы должны использовать mysqli.

0
ответ дан Tunaki 5 September 2018 в 07:28
поделиться

Это просто предупреждение, в котором вам предлагается начать использовать новые методы подключения к вашему db, такие как объекты pdo

http://code.tutsplus.com/tutorials/php-database -access-are-you-doing-it-correct - net-25338

Руководство находится здесь

http: //www.php. нетто / ручной / EN / book.pdo.php

0
ответ дан user1652319 5 September 2018 в 07:28
поделиться
<?php 
$link = mysqli_connect('localhost','root',''); 
if (!$link) { 
    die('Could not connect to MySQL: ' . mysqli_error()); 
} 
echo 'Connection OK'; mysqli_close($link); 
?>

Это решит вашу проблему.

0
ответ дан zubair1024 5 September 2018 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: