当前位置: 首页 > 面试题库 >

PDO在执行语句期间受行影响

柳羽
2023-03-14
问题内容

我发现有很多方法可以将exec语句用于PDO,但是我不确定它是否对我有帮助。我的理解是我必须对准备好的语句使用execute()函数。我正在使用来自用户输入的数据更新一行,因此我想使用一个准备好的语句而不是query()调用。

我的代码如下:

$dbh = buildDBConnector(); 
$sql = "UPDATE tb_users 
    SET authState=1
    WHERE id = ? AND authPass = ?";
$q = $dbh->prepare($sql);
$f = $q->execute(array($id,$authPass));
if($f){
    echo '<br />Success<br />';
}else{
    echo '<br />Failure<br />';
}

问题是查询本身没有错误并且可以正常执行,因此在$
f中存储没有错误。但是,我需要知道它是否确实找到要更新的行,然后成功更新了它。换句话说,我需要受影响的行。当进行谷歌搜索时,它会不断出现在exec语句中,但是据我了解,exec不是用于准备好的语句吗?有什么建议么?


问题答案:

尝试$q->rowCount()。准备好的语句将通过该方法返回受影响的行数。



 类似资料:
  • 问题内容: 使用php / mysql如何获取查询影响的行数? 到目前为止我尝试过的是: 但它表示警告:mysql_num_rows():提供的参数不是有效的MySQL结果资源 问题答案: 如果您使用的是PDO(我建议使用PDO),则直接查询将返回受影响的行数。对于Prepared Statements, 有一个称为的方法。 如果您使用的是mysql函数,则有。 编辑: 似乎您正在使用mysql函

  • 问题内容: 我正在使用MySQL数据库并通过Java访问它。 上面的update语句工作正常,但是我想获取此语句影响的行数。请问这可能吗? 问题答案: 在PreparedStatement上调用executeUpdate()应该返回一个整数,即更新的记录数。

  • 我正在练习Python,我想写一个程序来检查当前时间,看看它是否与2:12 pm匹配,并说:所以首先我想要使用模块,但我不知道如何使用? 我的问题是我不知道如何使用时间模块。或者我用的语法对不对? 我的代码:

  • 问题内容: 大家好,我想执行我的SQL语句,但是我在synatx上遇到麻烦,有人可以帮助我了解我做错了什么吗? 谢谢,阿什。 问题答案: 您需要解决的最重要的事情是使用查询参数,而不是动态地构建字符串。这将提高性能,维护和安全性。 此外,您想使用较新的强类型ADO.Net对象。确保为添加使用指令。 注意此代码中的语句。完成连接后,他们将 确保 您的连接已关闭。这很重要,因为数据库连接是有限且不受管

  • 问题内容: 我正在使用Python执行单线循环,即: 这很好。但是,如果我在for循环之前导入模块,则会收到语法错误: 任何想法如何解决? 对我来说,将其作为一个单行放置非常重要,这样我才能将其包含在Makefile中。 问题答案: 你可以做 或不带管道: 要么 或@ SilentGhost的答案 只需使用return并在下一行输入它:

  • 我还检查了调试,它将语句=>if(sum==1)返回true;但它也在执行更多的语句。