首页 > 解决方案 > PHP 用 LIKE 准备语句

问题描述

我在用着:

   $ordem = "%".$_GET['ordem']."%"; 
    $arr = [];

    $stmt = $conn->prepare("SELECT texto,data_hora FROM logs WHERE texto LIKE ?");  
    $stmt->bind_param('s',$ordem);
    $stmt->execute();

$ordem变量正在接收包含在 DB 中的值,但未找到...

怎么了?

谢谢

标签: phpmysqlmysqliprepared-statement

解决方案


试试下面的代码

$stmt = $conn->prepare("SELECT texto, data_hora FROM logs WHERE texto LIKE '%?%'");  
$stmt->bind_param('s', $_GET['ordem']);

或尝试以下与您所做的类似

$param = "%{$_GET['ordem']}%";
$stmt = $db->prepare("SELECT texto, data_hora FROM logs WHERE texto LIKE ?");
$stmt->bind_param("s", $param);

推荐阅读