我试图将sql查询的结果存储到我的php查询中的变量中。但问题是,它不起作用,仅仅因为我正在制作小学生错误,而且由于我缺乏PHP经验。
这是我的代码:
<?php
include "init.php"
if(!empty($_POST['driverNo'])){
$driverNoText = $_POST['driverNo'];
$stmt = "SELECT registrationNo FROM cars WHERE driverNo = ?";
$result = $conn->prepare($stmt);
$result->bind_param('s', $driverNoText);
$result->execute();
$result->store_result();
if($result->num_rows > 0){
$registrationNo = $result["registrationNo"];
echo $registrationNo;
}
else{
$registrationNo = "";
}
}
else{
echo "Something went horribly wrong";
}
?>
请注意,由于registrationNo和driverNo都是唯一的,因此结果将返回0条记录(未找到)或仅返回1条(找到)。
我只想将registrationNo存储到$ registrationNo中,因为我需要在以后的其他地方使用该值。
如果有人可以帮助我解决我的错误,那将意味着很多
由于
答案 0 :(得分:0)
您必须使用->bind_result()
:
$result = $conn->prepare( $stmt );
$result->bind_param( 's', $driverNoText );
$result->execute();
$result->store_result();
$result->bind_result( $registrationNo );
while( $result->fetch() )
{
echo $registrationNo;
}
$result->free_result();
请注意,在您的示例中不需要使用->store_result()
(虽然这不是错误):它不“存储第一个结果”,它将所有结果集存储在php端。即使不使用它,您的脚本也能正常工作。