【问题标题】:Sql function won't execute through php [duplicate]Sql函数不会通过php执行[重复]
【发布时间】:2017-03-09 11:40:58
【问题描述】:

我有一个简单的 sql 函数,可以在从 wamp 的 mysql 控制台调用时工作。但是当我尝试在 php 中获取它时,它给了我错误。我从字面上复制了mysqli_query 的内容并将其粘贴到控制台中,它工作得很好,但是在 php 中给了我错误。听起来很简单,但我一整天都解决不了。

代码总结:

$ArrivalDate = mysqli_query(
              $dbCon,
              "select arrival('2017-03-09' , '2017-01-05' , '2017-01-05');"
                );

              $result = mysqli_fetch_row($ArrivalDate);

这给了我

警告:mysqli_fetch_row() 期望参数 1 为 mysqli_result,给定布尔值

【问题讨论】:

  • 具有相同$dbCon 的其他查询工作正常。
  • 添加var_dump(mysqli_error($dbCon));查看mysql错误。
  • $dbCon 可能有问题。查看 $dbCon 和 $ArrivalDate 的 var_dump
  • 输出mysqli::$error()怎么样?
  • 我怀疑您在该连接上有来自先前查询的行,但您尚未获取。请参阅本页右侧栏中Linked 部分中的问题。

标签: php mysql sql mysqli


【解决方案1】:

我觉得你的问题和这个类似:Mysqli Fetch Row Not Executing

根据链接中的答案,您需要检查查询是否正确。

所以对于你的例子应该这样做:

$ArrivalDate = mysqli_query($dbCon,
                "select arrival('2017-03-09' , '2017-01-05' , '2017-01-05');"
                );

if($ArrivalDate){
    $result = mysqli_fetch_row($ArrivalDate);
}
else
{
exit('Error'); //Execute this code when the query failed
}

还尝试删除上面评论者建议的查询语句中的分号 ( ; )

【讨论】:

  • 是的,但是查询不会执行,if($ArrivalDate) 返回false
猜你喜欢
  • 2015-12-25
  • 1970-01-01
  • 1970-01-01
  • 2015-06-01
  • 2013-06-03
  • 2012-09-30
  • 1970-01-01
  • 2014-08-20
  • 2020-04-05
相关资源
最近更新 更多