首页 > 解决方案 > PHP - ¿ 与此查询等效的 PDO 是什么?real_escape_string // fetch_assoc

问题描述

在此先感谢您抽出宝贵的时间。

语境

我是 php 新手,我的第一个个人任务是在做一个小型库存系统的同时将 SQLI 连接更改为 PDO,一切都很好,直到我看到这个组件是一个很棒的实时搜索数据表

问题

改变它我看到的连接:

  1. $q=$conexion-> real_escape_string ($_POST['farmacos']);

  2. $buscarFarmaco= $conexion->query($query) ;

  3. 而($filaFarmacos= $buscarFarmaco->fetch_assoc())

当然,经过一整天的网络阅读 + youtube 我无法解决它。

这是我最好的尝试

  1. $q=$conexion-> real_escape_string ($_POST['farmacos']);

1.1。$q = $conexion -> 准备();$q -> 执行();

  1. $buscarFarmaco= $conexion->query($query) ;

2.1。$buscarFarmaco = $conexion -> 准备($query); $buscarFarmaco -> 执行();

  1. 而($filaFarmacos= $buscarFarmaco->fetch_assoc())

3.1。而($filaFarmacos = $buscarFarmaco->fetch(PDO::FETCH_BOTH)):

所以

不要担心一个确切的解决方案,只是一个很好的建议,我会非常感激。

有带有 SQLi 连接但没有 PDO 的功能代码

<?php

/////// SQLI CONNECTION /////////

$host = 'localhost';
$basededatos = 'farmacia';
$usuario = 'root';
$contraseña = '';

$conexion = new mysqli($host, $usuario,$contraseña, $basededatos);
if ($conexion -> connect_errno)
{
    die("Fallo la conexion:(".$conexion -> mysqli_connect_errno().")".$conexion-> mysqli_connect_error());
}

/////// PDO CONNECTION /////////
//function conexion()
//{
//$servidor="mysql:host=localhost; dbname=farmacia";
//$usuario="root";
//$password="";

//$conexion = New PDO($servidor,$usuario,$password);
//$conexion -> SetAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

//return $conexion;
//}

//$conexion = conexion();

//////////////// INITIAL QUERY ///////////////////////

$tabla="";
$query="SELECT * FROM farmaco ORDER BY sto_far";

///////// OLD SQLI QUERY ////////////
if(isset($_POST['farmacos']))
{
    $q=$conexion->real_escape_string($_POST['farmacos']); //here is the problem
    $query="SELECT * FROM farmaco WHERE 
        nom_far LIKE '%".$q."%' OR
        lab_far LIKE '%".$q."%' OR
        sto_far LIKE '%".$q."%' OR
        pre_far LIKE '%".$q."%'";
}

$buscarFarmaco=$conexion->query($query); //here is the other
if ($buscarFarmaco->num_rows > 0)
{
    $tabla.= 
    '<table>
       <thead class="thead-dark">
        <tr>
            <td>NOMBRE</td>
            <td>LABORATORIO</td>
            <td>STOCK</td>
            <td>PRECIO</td>
        </tr>
        </thead>';

    while($filaFarmacos= $buscarFarmaco->fetch_assoc()) //here is the final one
    {
        $tabla.=
        '<tr>
            <td>'.$filaFarmacos['nom_far'].'</td>
            <td>'.$filaFarmacos['lab_far'].'</td>
            <td>'.$filaFarmacos['sto_far'].'</td>
            <td>'.$filaFarmacos['pre_far'].'</td>
         </tr>';
    }

    $tabla.='</table>';
} else
    {
        $tabla="No hay stock de fármacos en este laboratorio.";
    }

echo $tabla;
?>

标签: phpmysqlmysqlipdodatabase-connection

解决方案


推荐阅读