- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我刚开始学习 MYSQLI 准备语句技术,遇到了非常烦人的问题。我的代码在 bind_result() 处停止。我就是不明白哪里出了问题,所以请大家帮帮我。
这是我的 config.php:
<?php
$db_name = 'site';
$db_user = 'root';
$db_pass = 'root';
$db_host = 'localhost';
$db_port = 8889;
$db = new mysqli($db_host, $db_user, $db_pass, $db_name, $db_port);
if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
}
?>
还有我的主要代码:
<?php
include 'config.php';
$post_id=450;
$stmt = $db->prepare("SELECT * FROM messages WHERE post_id = ?");
if ( false===$stmt ) {
die('prepare() failed: ' . htmlspecialchars($db->error));
}
$ex=$stmt->bind_param('i', $post_id); // Bind "$post_id" to parameter.
if ( false===$ex ) {
die('bind_param() failed: ' . htmlspecialchars($stmt->error));
}
$ex=$stmt->execute();// Execute the prepared query.
if ( false===$ex ) {
die('execute() failed: ' . htmlspecialchars($stmt->error));
}
$ex=$stmt->store_result();
if ( false===$ex ) {
die('store_result() failed: ' . htmlspecialchars($stmt->error));
}
$ex=$stmt->bind_result($p);
if ( false===$ex ) {
die('bind_result() failed: ' . htmlspecialchars($stmt->error));
}
while($stmt->fetch()){
echo $p;
}
?>
最佳答案
您最初的问题是您没有检查每个 调用是否失败,而只是检查开始时的少数几个。 store_result
和 bind_result
也可能失败。
您的具体问题(一旦您修复了初始问题)是您正在执行 select *
以获得 多个 列,但您只绑定(bind) 一个在结果中。从您从 bind_result
调用中获得的错误消息中可以明显看出这一点:
Number of bind variables doesn't match number of fields
如果您将 select
语句更改为类似 select id from ...
的语句,您会发现它开始工作了。
但是,假设您想要更多列,您应该在绑定(bind)中提供更多变量,例如:
$stmt = $db->prepare("SELECT col1, col2 FROM messages WHERE post_id = ?");
:
$ex = $stmt->bind_result($param1, $param2);
你会注意到我没有在上面使用 select *
,最好在几乎所有情况下都使用显式列命名,以便:
几乎唯一我发现可以使用select *
的地方是在数据库分析工具中,您可以在其中获取所有内容。如果您事先知道自己想要什么,那就是您应该提出的要求。
关于php - MYSQLI prepared statement proceeds 没有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18592975/
举个例子:Permutation Game (interviewstreet.com)。我想知道我该如何处理这些问题。 P.S.:请不要发布完整的算法(因为那样会破坏乐趣),只是一些提示。 最佳答案
这是我第一次接触 AOP。我有一个带有一个方面的 spring-boot 应用程序,一个记录器。搜索我得出的结论是 @Around 方法在方法之前和之后执行(我只在一种方法中调用它),这是对的吗? 在
javax.interceptor.InitationContext 的proceed() 方法是否抛出除目标方法或干预代码之外的任何异常?调用目标异常怎么样?一般来说,文档在这一点上似乎不完整。 [
我正在尝试了解当在 WebviewClient 的 onReceivedSslError 函数中调用 SslErrorHandler.proceed()(来自类 https://developer.a
这是 JSFiddle:http://jsfiddle.net/dAQrE/ 在 javascript 部分的顶部,您将看到假定在动画之后向下滚动到 #proceed div 的代码: line 1,
我有以下几个方面: aspect NullifyNoResultException { Object around(..) : execution(public Object com.exam
我有一个带有 UITableView 的应用程序。应用程序与服务器通信。 问题如下: 客户端 1 删除了 TableView 的一个单元格。数据更新被传输到服务器,服务器将数据更新发送到客户端 2。同
我刚开始使用laravel。我正在关注这个 Laravel 指南。我的环境是一个运行 php 5.6 的 aws 服务器,我已经安装了 composer。 https://laravel.com/do
当未登录(匿名)的用户点击继续结帐时,我希望他们被带到登录页面。然后,在他们登录或注册后,他们应该返回到结帐页面。 我正在使用单页结帐,其中有一个您未登录的登录部分,但当权者不希望这样。 最初,我开始
我正在尝试使用 Highcharts Javascript 图表引擎绘制一些图表,我已经全部设置好,它在我的本地开发环境中工作正常,但是当我将它部署到 Gitlab 并访问它时,它会给我以下信息错误:
当我尝试运行我的应用程序时出现此错误: 我检查过,没有理由认为它找不到 libnlopt-0.dll。这里是(注意GlassModelCalcualator是使用libnlopt-0.dll的DLL)
我有一个 UIViewController,其中包含一个 UITableView 和一个 UIRefreshControl 作为此 TableView 的 subview 。当 TableView 中
我刚开始学习 MYSQLI 准备语句技术,遇到了非常烦人的问题。我的代码在 bind_result() 处停止。我就是不明白哪里出了问题,所以请大家帮帮我。 这是我的 config.php: con
我是新手,没有开发 Android(Ubuntu 14.04、Android Studio 1.4)的经验。我只是想解决多个错误以构建我的代码,当我这样做时,我会弹出一个提示 Gradle is ru
假设您有三个建议:around、before 和 after。 1) 在 around 建议中调用 proceed 时是否会调用 before/after,还是将它们称为 before/after a
我正在尝试使用 azure 站点恢复保管库来保护我的 Hyper V 虚拟机,我使用以下链接: https://azure.microsoft.com/en-in/documentation/arti
我正在尝试设置Shake用于构建 Web 应用程序。在构建过程结束时,我想重命名生成的 .js和.css根据内容哈希文件(用于缓存清除目的)。 这当然意味着我不知道这些文件的最终名称,类似于 app-
就我而言,我有主项目和测试项目。我在测试项目中得到了正确的结果,其中我只有一个安装程序类并将所有内容注册在一处。在我的主要项目中,我有几个安装程序(一个用于服务,一个用于拦截器,一个用于公共(publ
我在使用 iOS Combine 框架时遇到了一些心理障碍。 我正在将一些代码从“手动”从远程 API 获取转换为使用组合。基本上,API 是 SQL 和 REST(实际上是 Salesforce,但
我有以下建议代码: @Around("annotatedMethod()") public Object aroundGetPanel(ProceedingJoinPoint join
我是一名优秀的程序员,十分优秀!