将第一个结果值存储到php

时间:2016-03-23 12:30:41

标签: php mysql

我试图将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中,因为我需要在以后的其他地方使用该值。

如果有人可以帮助我解决我的错误,那将意味着很多

由于

1 个答案:

答案 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端。即使不使用它,您的脚本也能正常工作。