显示MySQL查询的内容,只有第一场作品

问题描述:

我使用的mysqli prepard查询使用PHP,代码:显示MySQL查询的内容,只有第一场作品

$retreiveQuery = 'SELECT username, firstname, lastname FROM USERS WHERE username = ?'; 

if ($getRecords = $con->prepare($retreiveQuery)) { 
    $getRecords->bind_param("s", $username); 

    $getRecords->execute();   
    $getRecords->bind_result($username, $firstname, $lastname); 

echo "<h1>".$username."</h1> 
<p><strong>First Name: </strong>".$firstname." 
<p><strong>Surname: </strong>".$lastname." 
} else { 
print_r($con->error); 

这是很奇怪的。用户名是唯一显示的字段。为什么其他栏不会被退回/装订?

如果我做

SELECT username, firstname, lastname FROM USERS WHERE username = 'test'; 

直接到数据库,将显示所有领域,所有包含有效数据。

你必须调用

$getRecords->fetch(); 

bind_result()后,实际获得的记录。

正在输出用户名,因为您已将其设置为输入参数。

如果您使用不同的变量名称输出用户名,会发生什么情况?像这样:

SELECT username as user_name,firstname,lastname FROM USERS WHERE username ='test';

然后

$ getRecords-> bind_result($ USER_NAME,$姓名,$姓氏);

我想知道是否因输入和输出使用相同名称而感到困惑?

+0

ok ..所以这是一个与结果绑定的问题,我猜...但如何知道它是什么? – 2009-04-08 21:15:00

我还没有运行这个,但我注意到,你正在使用相同的变量,$ username的绑定参数和绑定结果变量。

可能是结果没有返回任何结果,但是$ username有一个显示的值,因为您事先分配了它,而不是它来自数据库。

尝试使用不同的变量,如$ param_user和$ result_user,看看会发生什么。我的猜测是没有结果会返回,这将指向查询或结果绑定的问题。

+0

是的,这是答案。那么结果绑定会出现什么问题?我如何检查这个问题? – 2009-04-08 21:13:24