2016-11-27 6 views
1

Я использовал PHP 5.4 в ходьбе Godaddy. У меня есть один PHP-скрипт, который отлично работает в нем. Теперь я изменил хостинг и новый хостинг компании. Предоставьте PHP 5.6. Я не кодирую PHP. Я получаю ошибку в моем сценарии, как показано нижеmysql_connect в php 5.6 +

Устаревшие: mysql_connect(): расширение MySQL является устаревшим и будет удален в будущем: использовать MySQLi или PDO вместо этого в /home4/z4g9f1v6/public_html/mydomain.com /folder/config.php на линии 7

Мой Configure файл, как показано ниже

$mysql_hostname = "localhost"; 
$mysql_user = "dbuser"; 
$mysql_password = "dbpass"; 
$mysql_database = "dbname"; 
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die("Could not connect database"); 
mysql_select_db($mysql_database, $bd) or die("Could not select database"); 

, и я использую его в моем search.php как ниже

include("config.php"); 
if($_SERVER["REQUEST_METHOD"] == "POST") 
{ 
mysql_query('SET character_set_results=utf8'); 
mysql_query('SET names=utf8'); 
mysql_query('SET character_set_client=utf8'); 
mysql_query('SET character_set_connection=utf8'); 
mysql_query('SET character_set_results=utf8'); 
mysql_query('SET collation_connection=utf8_general_ci'); 
$q=$_POST['q']; 
$q=mysql_escape_string($q); 
$q_fix=str_replace(" ","%",$q); // Space replacing with % 
$sql=mysql_query("SELECT qu_text FROM quotes WHERE qu_text LIKE '%$q%'"); 
}while($row=mysql_fetch_array($sql)){$title=$row['qu_text']; 

Пожалуйста, помогите мне. Как я могу решить проблему?

Благодаря

+0

В конце предупреждения указывается, как его исправить. 'использовать mysqli или PDO'. Вы также можете использовать SQL-инъекции. Использовать параметризованные запросы после обновления. – chris85

ответ

3

Для Myqli связи

$mysql_hostname = "localhost"; 
$mysql_user = "dbuser"; 
$mysql_password = "dbpass"; 
$mysql_database = "dbname"; 
$bd = mysqli_connect($mysql_hostname, $mysql_user, $mysql_password,$mysql_database) or die("Could not connect database"); 

Для запроса Пожалуйста, следуйте этот ответ How can I prevent SQL injection in PHP? это очень приятно.

Вы можете использовать это для запроса

$sql=sprintf("SELECT qu_text FROM `quotes` WHERE qu_text LIKE '%s%%'"),mysqli_real_escape_string($bd,$q)); 

$fetch= mysqli_query($bd,$sql) or die(mysql_error()); 

while ($row = mysqli_fetch_array($fetch, MYSQLI_ASSOC)) { 
//Your Result 
} 

Большинство синтаксиса mysql_ можно использовать с mysqli_

0

Как PHP становится объектно-ориентированный язык сценариев, это будет лучше использовать PDO, чтобы подключиться к базе данных и выполнить операции, для этого у вас есть немного больше усилий. Подобно тому, как создавать классы Entity для каждой таблицы (каждый столбец как переменная), это единственная беспокойная часть, но это сделает программу более безопасной и читаемой.

Я просто даю код для подключения к базе данных и извлечения набора данных:

1. DBConfig.php

$dsn = 'mysql:dbname=<database-name>;host=<host-name>'; 
$user = '<user-name>'; 
$password = '<password>'; 

try 
{ 
    $conn = new PDO($dsn, $user, $password); 
} 
catch (PDOException $e) 
{ 
    echo 'Connection failed: ' . $e->getMessage(); 
} 

2. search.php

require_once 'DBConfig.php'; //If DBConnection is not made in same file 
require_once '<name-of-entity-class>.php'; 

$q = (isset($_POST['q']) && !empty($_POST['q'])) ? $_POST['q'] : NULL; 

try 
{ 
    $query = "SELECT qu_text FROM quotes WHERE qu_text LIKE :q"; 

    $stmt = $conn->prepare($query); 

    $stmt->bindValue(':q', $q, PDO::PARAM_STR); 

    $stmt->execute(); 

    while($row = $stmt->fetch()) 
    { 
     $dataset[] = new <name-of-entity-class>($row); 
    } 

    if(!empty($dataset)) 
    { 
     foreach ($dataset as $data) 
     { 
     echo '<p>'; 
     echo $data->get<var-name>; 
     echo '</p>'; 
     } 
    } 
    else 
     echo 'empty database'; 
} 
catch (Exception $ex) 
{ 
    echo 'Some error occured: ' . $e->getMessage(); 
} 

Спасибо и с уважением.

+0

Обратите внимание, что [вы не должны сразу улавливать и исключать исключения] (https://phpdelusions.net/pdo#errors) –

Смежные вопросы