mysql_connect在php 5.6+中的使用

24 浏览
0 Comments

mysql_connect在php 5.6+中的使用

此问题已经在此处有答案

为什么不应该在PHP中使用mysql_*函数?

我在Godaddy托管中使用PHP 5.4。我有一个PHP脚本在其中正常工作。现在我更换了托管并且新的托管公司提供了PHP 5.6。我不会编写PHP代码。我在我的脚本中遇到以下错误

已弃用:mysql_connect():mysql扩展已被弃用,将来将被删除:请改用mysqli或PDO,位于/home4/z4g9f1v6/public_html/mydomain.com/folder/config.php的第7行

我的配置文件如下

$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'];

请帮帮我。我应该如何解决这个问题?

谢谢

admin 更改状态以发布 2023年5月20日
0
0 Comments

随着PHP逐渐成为面向对象的脚本语言,更好的连接数据库和执行操作可以通过使用PDO来实现,但需要付出更多的努力。比如为每个表创建实体类(每一列作为变量),这是唯一繁琐的,但可以使程序更安全和更易读。

我只是提供连接到数据库并检索数据集的代码:

1. DBConfig.php

$dsn = 'mysql:dbname=;host=';
$user = '';
$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 '.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 ($row);
   }
   if(!empty($dataset))
   {
      foreach ($dataset as $data)
      {   
        echo '

'; echo $data->get; echo '

'; } } else echo 'empty database'; } catch (Exception $ex) { echo 'Some error occured: ' . $e->getMessage(); }

谢谢和问候。

0
0 Comments

使用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");

请遵循这个答案进行查询如何在PHP中防止SQL注入?它非常好。

您可以使用此进行查询

$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