PHP-mysql。尝试使用->;检索类似查询;绑定参数
我正在尝试在我的数据库中进行搜索,它返回基于确切姓氏和名字的结果,并在输入框中输入姓名的首字母。例如,如果用户输入PHP-mysql。尝试使用->;检索类似查询;绑定参数,php,mysql,Php,Mysql,我正在尝试在我的数据库中进行搜索,它返回基于确切姓氏和名字的结果,并在输入框中输入姓名的首字母。例如,如果用户输入Simon Burns,它将返回所有用户,名字的首字母为S,姓氏的首字母为Burns。这是我的密码 很抱歉,如果这已经涵盖之前,但我找不到一个简单的答案,工程 $firstname = filter_input(INPUT_POST, 'firstname', FILTER_SANITIZE_STRING); $surname = filter_input(INPUT_POST, '
Simon Burns
,它将返回所有用户,名字的首字母为S
,姓氏的首字母为Burns
。这是我的密码
很抱歉,如果这已经涵盖之前,但我找不到一个简单的答案,工程
$firstname = filter_input(INPUT_POST, 'firstname', FILTER_SANITIZE_STRING);
$surname = filter_input(INPUT_POST, 'surname', FILTER_SANITIZE_STRING);
$prep_query = "SELECT id, firstname, surname, profilepic, Gender, StartYear, EndYear, CircaStart, CircaEnd, JnrHouse, SnrHouse
FROM people WHERE firstname LIKE ? AND surname = ?";
$namecheckresult = $connection->prepare($prep_query);
// Return all matches wether registered on not
if ($namecheckresult)
{
$initial = $firstname[0];
$namecheckresult->bind_param( 'ss', $initial . '%', $surname);
$namecheckresult->execute();
$namecheckresult->store_result();
$namecheckresult->bind_result($id, $first, $last, $ProfilePic, $Gender, $StartYear, $EndYear, $CircaStart, $CircaEnd, $JnrHouse, $SnrHouse);
你把两个参数弄混了 换成
$p1 = '%'.$initial;
$namecheckresult->bind_param( 'ss', $p1 , $surname);
或者,您可以像这样将%
放在$initial
的前面和后面
$p1 = "%$initial%";
$namecheckresult->bind_param( 'ss', $p1 , $surname);
我现在已经找到了答案 更改$initial=$firstname[0] 到 $initial=“%$firstname[0]” 工作
希望这对其他人有所帮助。Erm,是否返回了来自PHP或MySQL的任何错误代码?(!)致命错误:无法通过引用传递参数2 INFORM:“将变量作为参数绑定到准备好的语句”(重点是我的)。让我看看是否能找到合适的副本。谢谢你的及时回复,但这也不起作用。下面是我在这段代码中遇到的错误。(!)致命错误:无法通过引用传递参数2 OK,试试看,我做了一点Woopsyys,感谢RiggsFolly最终自己解决了这个问题,与您的第二个答案相同。实际上,变量上写的必须是引用。因此,您不能在参数部分一起构建字符串。更改
$initial=$firstname[0]$namecheckresult->bind_参数('ss',$initial'.%',$namesname)
至$initial=$firstname[0]。%$namecheckresult->bind_参数('ss',$initial,$name)代码>应该做的工作…我尝试了上面你发布的,但仍然抛出一个错误。我的解决方案不起作用。