【发布时间】:2013-10-21 05:09:08
【问题描述】:
我在研究 php.net 后仍然感到困惑。
来自 php.net: mysqli_stmt::bind_result -- mysqli_stmt_bind_result — 将变量绑定到准备好的语句以存储结果,并将结果集中的列绑定到变量。
我的不确定性: “绑定列” - 什么列? PHP 是否将变量(var1、var2 等)放入列中。列是否引用数据库中的列?与此同时,我将研究与 myqli bind_result() 相关的专栏。
来自 php.net: 当调用 mysqli_stmt_fetch() 获取数据时,MySQL 客户端/服务器协议将绑定列的数据放入指定的变量 var1, ....
我的不确定性: “将数据放入指定的变量 var1” - 什么数据?这是用户提供的数据吗?这是 bind_result($x) 生成并返回的数据吗(神奇地?)
我还尝试通过 Stackoverflow 帖子从一个有类似问题的成员那里了解这个函数 - (使用 bind_result 推入数组)在 6 月 17 日 20:36 jskidd3 询问 - 尽管他的代码示例非常相似对我来说,他的问题不像我在这里的问题那么基本。
我正在尝试深入了解 mysqli“bind_result()”函数,但我不知道表面上发生了什么。那么,这个函数的目的是什么?另外,你能从理论上说明在绑定结果之后准备语句会是什么样子吗?如果可能的话,你能澄清一下我在 PHP.net 网站上留下的歧义吗?您可以使用我从http://www.mustbebuilt.co.uk/2011/11/17/mysqli-cheatsheet/ 获得的以下示例。
在下面的示例中,我不明白 $filmName 的什么值被传递给 bind_result($filmName),并且我不明白通过 echo 输出的结果是什么?
非常感谢您的帮助并帮助我了解此功能的情况。谢谢!!
查询场景 - 使用 prepare 获取用户输入的一行:
$stmt = $mysqli->prepare("SELECT filmID, filmName FROM movies WHERE filmID = ?");
$stmt->bind_param('i', $_GET['filmID']);
$stmt->execute();
//what value is being passed - and where is $filmName(and it's value) coming from?
$stmt->bind_result($filmName);
$stmt->fetch();
$stmt->close();
//resulting value or output displayed?
echo $filmName;
【问题讨论】:
-
为什么不直接运行上面的代码看看?
-
@Nirk 如果我也可以提出建议-如果您想回答某些技术,请先尝试使用它。