请帮我解决这个问题。我想从数据库中获取数据,如果有结果,我想返回一个消息和数据数组。
$this->query=("select * from user where pno='".$search."'");
$rd = $this->executeQuery();
$data = $rd->fetch_assoc();
if ($data) {
$message = "Record found.";
} else {
$message = "Record not found.";
}
return array($data, $message);
我这样称呼它:
list($data, $message)=$user->search($result);
echo $message
echo $data['name'];
我收到消息但我无法获取数组。 如果功能有问题或者我可以改进它,请帮帮我。
答案 0 :(得分:2)
从不这样做 你应该把你的消息设置代码放在
之外。function getData(){
$this->query=("select * from user where pno='".$search."'");
$rd = $this->executeQuery();
return $rd->fetch_assoc();
}
if ($data = getData()){
$message = "Record found.";
echo $message;
echo $data['name'];
} else {
$message = "Record not found.";
echo $message;
}
答案 1 :(得分:1)
我不确定你在使用什么,但很可能你会在$ data中有一个行数组,即使只有一行。试试$data[0]['name']
。此外,我建议你将该消息从你的函数移动到它被调用的地方,如果没有找到,则使函数返回NULL或FALSE。
$this->query=("select * from user where pno='".$search."'");
$rd = $this->executeQuery();
$data = $rd->fetch_assoc();
return empty($data)?FALSE:$data;
答案 2 :(得分:0)
您的代码示例中echo $message
后遗漏了一个分号。
尝试将此附加到您的代码并告诉我们它返回的内容:
var_dump($data);