【问题标题】:MS Access & php微软访问 & php
【发布时间】:2017-05-05 12:07:46
【问题描述】:

下面代码中if语句的正确条件是什么

$sql = "INSERT INTO table ($columns) VALUES ($values)";
 echo $sql;
 $results = odbc_exec($conn, $sql);
                 if ($results){
              echo "Query Executed";
                }else {
              echo "Query failed " .odbc_error();
            }    

或者应该是

if ($results > 0){

请指教。

【问题讨论】:

    标签: php ms-access odbc


    【解决方案1】:

    来自手册:http://php.net/manual/en/function.odbc-exec.php

    如果执行了 SQL 命令,则返回 ODBC 结果标识符 成功,或错误为 FALSE。

    所以检查 $result 就可以了:

    <?php
    ...
    $result = odbc_exec($conn, $sql);
    if ($result) {
       // OK
    } else {
       // Failure
    }
    

    【讨论】:

      【解决方案2】:

      测试odbc_exec()成功或失败的正确方法是:

      if ($result !== false) {
          // success
      } else {
          // failure
      }
      

      documentation 说:

      如果 SQL 命令执行成功,则返回 ODBC 结果标识符,错误则返回 FALSE。

      如果函数返回布尔值 (FALSE) 或非布尔值,请务必使用身份比较运算符。
      虽然if ($result) 在这种情况下可能有效(它取决于可能的 ODBC 结果标识符),但在其他情况下则无效。

      例如,strpos() 如果未找到子字符串,则返回 FALSE,否则返回子字符串的位置 - 这意味着 0 是肯定的结果。
      if ($result) 在这种情况下是错误的,而if ($result !== FALSE) 将按预期工作。

      【讨论】:

        猜你喜欢
        • 2013-05-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多