首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么PHP不准备像我的SQL点表示法那样的语句?

为什么PHP不准备像我的SQL点表示法那样的语句?
EN

Stack Overflow用户
提问于 2012-05-16 21:34:05
回答 1查看 524关注 0票数 0

所以,一开始我加入了很多表,并使用别名,但是我把它简化为下面的表示法,它给了我这个错误。

警告: mysqli_stmt::bind_param():变量数与

代码语言:javascript
复制
$sql = "SELECT table.name FROM `table`";

if (!($stmt = $link->prepare($sql))) {
    echo "Prepare failed: (" . $link->errno . ") " . $link->error;
    die();
}

if (!$stmt->execute()) {
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error."<br/>";
    die();
}

if (!$stmt->bind_param("s", $country)) {
    echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
    die();
}

如果我试图用滴答号包装table.name,则会得到以下错误:

代码语言:javascript
复制
Prepare failed: (1054) Unknown column 'venues.name' in 'field list'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-16 21:36:38

没有参数,但您正在绑定一个参数。因此,“变量数与准备语句中的参数数不匹配”

代码语言:javascript
复制
table.name

对列名完全有效,但根据实际名称,您可能需要执行以下操作:

代码语言:javascript
复制
`table`.`name`

你可能要找的是:

代码语言:javascript
复制
$sql = "SELECT `table`.`name` FROM `table` WHERE country = ?";

请注意,您确实应该避免后退,因为您应该避免使用实体的保留名称。

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

https://stackoverflow.com/questions/10627029

复制
相关文章

相似问题

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