我正在尝试运行一个查询,它通过PHP使用领号返回用户的SQL行id。
由于某些原因,它不起作用,并提供了一个错误:试图访问null类型值的数组偏移量。完整错误消息-https://gyazo.com/38367bee5066d16f419a43aab93cbc89
我不知道该怎么解决,我试过很多方法。我希望函数返回id,这样我就可以在需要的地方使用它。我使用的是PHP的include函数。
UpdatePassword.php
session_start();
include("functions.php");
$id = findUserID(array_key_exists("collar", $_POST));
echo($id);
Functions.php
function findUserID($collar){
$id = "";
include("../connection.php");
$query = "SELECT `id` FROM `users` WHERE collar = '".mysqli_real_escape_string($link, $collar)."'";
if ($result = mysqli_query($link, $query)){
//echo "Query was Successful";
$row = mysqli_fetch_array($result);
return($row['id']);
}
}
使用PHP三元运算符显示一个验证$_POST
输入的示例:
$id = ( array_key_exists("collar", $_POST) )
? findUserID($_POST['collar'])
: 0;
这是的缩写
if ( true === array_key_exists("collar", $_POST) ) {
$id = findUserID($_POST['collar']);
}
else {
$id = 0;
}
每种方法都可以包括其他验证检查:
$id = (
array_key_exists("collar", $_POST) // key exists
&& "" !== $_POST['collar'] // not empty string
)
? findUserID($_POST['collar'])
: 0; // if not valid, assign default value