she*_*njw 3 php mysql pdo exception
我的代码是:
.....
.....
$sql = 'SELECT '.$return_fields.' FROM '.$table.' WHERE '.$search_field.'=:'.$search_field;
$stmt = $conn->prepare($sql);
$stmt->bindParam($search_field, $search_val);
$stmt->execute();
....
....
Run Code Online (Sandbox Code Playgroud)
在哪里$search_field = 'reg_user_linked', $search_val = 'aa@gmail.com'。
执行该语句时出现此错误,我无法弄清楚原因:
参数编号无效:列/参数从 1 开始
有人可以帮忙吗?
经过几个小时的尝试,我发现这个错误只发生在我处于调试模式时。如果我运行代码并打印结果,它就会起作用......有谁知道为什么会发生这种情况?(我的IDE是NetBeans 7.2,调试工具是xdebug)...
绑定参数时需要:在参数名称中指定:
$stmt->bindParam(':' . $search_field, $search_val);
Run Code Online (Sandbox Code Playgroud)
您会收到错误,因为缺少此参数,并且代码回退到期望整数值来指示参数位置(就像您使用?-style 参数一样)。
PDOStatement::bindParam()请注意文档中第一个参数的描述。
范围
参数标识符。对于使用命名占位符的准备语句,这将是以下形式的参数名称:名称。对于使用问号占位符的准备好的语句,这将是参数的 1 索引位置。
| 归档时间: |
|
| 查看次数: |
10875 次 |
| 最近记录: |