Php pdo使用mysql显示无

Php pdo使用mysql显示无,php,mysql,pdo,Php,Mysql,Pdo,我这里有一些代码 我不知道为什么它没有显示任何东西 function konek() { return new PDO('mysql:host=localhost;dbname=payroll;port=3306', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); } $pdo = konek(

我这里有一些代码 我不知道为什么它没有显示任何东西

function konek() {
    return new PDO('mysql:host=localhost;dbname=payroll;port=3306', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
}

$pdo = konek();
$keyword = $_POST['keyword'];
$sql = "SELECT * FROM karyawan WHERE noreg LIKE '%:keyword%' OR nama LIKE '%:keyword%' ORDER BY noreg ASC LIMIT 0, 10";
$query = $pdo->prepare($sql);
$query->bindParam(':keyword', $keyword, PDO::PARAM_STR);
$query->execute();
$daftar = $query->fetchAll();
foreach ($daftar as $kar) {

    echo '<li>'.$kar['noreg'].'||'.$kar['nama'].'</li>';
}
?>
函数konek(){
返回新的PDO('mysql:host=localhost;dbname=payroll;port=3306','root','',数组(PDO::ATTR_ERRMODE=>PDO::ERRMODE_异常,PDO::mysql_ATTR_INIT_命令=>“SET NAMES utf8”);
}
$pdo=konek();
$keyword=$_POST['keyword'];
$sql=“从karyawan中选择*,其中noreg类“%:keyword%”或nama类“%:keyword%”按noreg ASC限制0,10排序”;
$query=$pdo->prepare($sql);
$query->bindParam(':keyword',$keyword,PDO::PARAM_STR);
$query->execute();
$daftar=$query->fetchAll();
foreach($daftar作为$kar){
回音“
  • ”.$kar['noreg']”.| |“.$kar['nama']”.
  • ; } ?>

    我的代码有问题吗?

    请尝试更改使用准备语句的方式,将%%包含在bindParam方法中,而不是查询中:

    $sql = "SELECT * FROM karyawan WHERE noreg LIKE :keyword OR nama LIKE :keyword ORDER BY noreg ASC LIMIT 0, 10";
    
    然后


    您必须在
    bindParam
    中包含
    %
    符号,而不是在查询中:

    $sql = "SELECT * FROM karyawan WHERE noreg LIKE :keyword OR nama LIKE :keyword ORDER BY noreg ASC LIMIT :start, :end";
    $query = $pdo->prepare($sql);
    $query->bindParam(':keyword', '%'.$keyword.'%', PDO::PARAM_STR);
    $query->bindParam(':start', 0, PDO::PARAM_INT);
    $query->bindParam(':end', 10, PDO::PARAM_INT);
    

    您遇到了什么错误?在调用konek()@Monty的周围添加一个try/catch(PDOException)没有错误警告,它只是显示none@GerardRozsavolgyi,我认为$query->bindParam(':keyword','%'.$keyword'%',PDO::PARAM_STR)没有错误;够了,我不需要:开始和:结束是的!!但你也可以约束自己的极限
    $sql = "SELECT * FROM karyawan WHERE noreg LIKE :keyword OR nama LIKE :keyword ORDER BY noreg ASC LIMIT :start, :end";
    $query = $pdo->prepare($sql);
    $query->bindParam(':keyword', '%'.$keyword.'%', PDO::PARAM_STR);
    $query->bindParam(':start', 0, PDO::PARAM_INT);
    $query->bindParam(':end', 10, PDO::PARAM_INT);