首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqli::bind_param();变量

mysqli::bind_param();变量
EN

Stack Overflow用户
提问于 2013-09-03 13:34:15
回答 2查看 646关注 0票数 2
代码语言:javascript
复制
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* execute prepared statement */
$stmt->execute();

我从php手册获取了上面的代码,我对以下部分感到困惑:

代码语言:javascript
复制
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

首先声明变量,然后将它们传递给bind_param(),使用此代码是否有效和等效?

因此:

代码语言:javascript
复制
$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

$stmt->bind_param('sssd', $code, $language, $official, $percent);

老实说,我不知道为什么手册给出的示例是有效的,因为您在声明变量之前使用了变量。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-03 13:49:03

bind_param接受引用,如果您不确定确切的引用是什么,那么单击这里作为被命名为“References解释性”的摘录。

这确实意味着,在bind_param之后设置变量是有效的,但同样,这取决于您希望如何做。例如,我更喜欢在绑定之前声明变量。

很少观察

变量是在执行之前声明的,因为PHP从上到下处理。当实际需要变量时(在执行时),如果您在execute()之后声明变量,则会出现SQL失败和其他不必要的php错误。

票数 1
EN

Stack Overflow用户

发布于 2013-09-03 13:37:32

是的,因为paramBinds variables to a prepared statement as parameters和它使用了对这些变量的引用,所以每当您更改它们时,更改都会反映在它们上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18593728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档