php - 给出警告 : mysqli_error() expects exactly 1 parameter, 0

标签 php mysql mysqli

<分区>

当尝试从我的数据库表“checklist”返回一组简单的结果时,我收到以下错误;

“警告:mysqli_error() 恰好需要 1 个参数,给定 0”

我的list.php文件的代码如下;

<?php
require_once('/includes/connection.inc.php');
// create database connection
$conn = dbConnect('read');
$sql = 'SELECT * FROM checklist ORDER BY created DESC';
$result = $conn->query($sql) or die(mysqli_error());
?>

<?php while($row = $result->fetch_assoc()) { ?>

<?php echo $row['created']; ?>
<?php echo $row['title']; ?>

<?php } ?>

我的connection.inc.php文件内容(供引用)如下;

    <?php 
        function dbConnect($usertype, $connectionType = 'mysqli') { 
          $db = 'projectmanager'; 
          $host = 'localhost'; 
          if ($usertype  == 'read') { 
            $user = 'root'; 
            $pwd = ''; 
          } elseif ($usertype == 'write') { 
            $user = 'root'; 
            $pwd = ''; 
          } else { 
            exit('Unrecognized connection type'); 
          } 

                // Connection goes here...
                  if ($connectionType == 'mysqli') {
    return new mysqli($host, $user, $pwd, $db);
  } elseif ($mysqli->connect_error) {
    die('Connect Error: ' . $mysqli->connect_error);
  }

    }

    ?>

我一直在尝试遵循一本书中的一些示例 PHP 解决方案:轻松实现动态 Web 设计 HERE ...但是我已经遇到了 connection.inc.php 文件(上面显示的代码段)的问题,我不得不更正“或死亡('无法打开数据库');”并将其替换为上面针对 mysqli_error 看到的基于 IF 的语句。所以我想知道这本书是否充斥着一些基本的、基本的错误——至少当呈现给像我这样的新手时会让我们感到困惑。

有什么帮助吗?

谢谢

最佳答案

我认为您遇到的问题是因为您将面向对象和非 OO 调用组合到 MySQLi 库中。

mysqli_error() 函数确实需要一个参数——它需要连接变量;在你的例子中,$conn

mysqli_error($conn)

但是,如果您以面向对象的方式编写它,就像您对其余大多数数据库调用所做的那样,您将像这样编写它:

$conn->error

由于您的所有其余代码都是使用面向对象的调用编写的,因此将它用于此调用也是有意义的。

所以你的完整代码行应该是这样的:

$result = $conn->query($sql) or die($conn->error);

您可以在 PHP 手册中查看更多示例:http://php.net/manual/en/mysqli.error.php

希望对您有所帮助。

关于您关于您正在使用的书的问题:我无法直接评论这本书本身,因为我还没有读过它。但请注意,PHP 有两个 MySQL 库;较旧的 mysql 库和较新的 mysqli 库。旧库还有一个 mysql_error() 函数,它与新库的不同之处在于它不需要连接变量。如果您使用的书中有错误,这可能是造成混淆的根源。

关于php - 给出警告 : mysqli_error() expects exactly 1 parameter, 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7778562/

相关文章:

javascript - 简单的 PHP 数组到 Javascript 数组

mysql - 如何在 MySQL 中找到 "Delete rows ignoring errors"?

php - 使用PHP pdo的简单Mysql DB搜索-返回不正确的值

php - MySQL:对 ID 进行分组并在单独的列上显示不同的值

php - 你怎么匹配12小时时间 hh :mm in a regex?

php - 显示来自 mysql 的搜索结果

php - Nginx + php-fpm : Bad gateway only when xdebug server is running

php - MySQL 中的 "Unknown column"错误

php - 如何获得两个连接变量的最大值

php - 在 PHP 中将一行的 MySQL 值设置为默认值