以下非常简单的脚本旨在根据GET变量返回姓氏和姓氏。

每次运行脚本时,都会显示此错误:

警告:mysqli_stmt :: bind_param():第10行上mypath / names.php中已准备好的语句中的变量数量与参数数量不匹配

我已经检查了SQL查询,它在SQLyog中工作得很好。我还使用get变量调用文件:names.php?surname = jo

<?php
ini_set("display_errors",1);
require_once('connection.php');

$db = DB::connect();
$db->select_db("mydb");
$sql = "SELECT forename,surname FROM `people` WHERE `surname` LIKE '?%' LIMIT 1";

if ($stmt = $db->prepare($sql)) {
    $stmt->bind_param("s", $_GET['surname']);
    $stmt->execute();
    $stmt->bind_result($forename, $surname);
    $stmt->fetch();
    $stmt->close();
}
?>

最佳答案

你应该试试:

$sql = "SELECT forename,surname FROM `people` WHERE `surname` LIKE ? LIMIT 1";




$surname=$_GET['surname']."%";
$stmt->bind_param("s", $surname);

关于php - bind_param错误,其中提供了正确数量的参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20563250/

10-15 16:00