【问题标题】:Undefined variable: mysqli & call to a member function query() on null未定义的变量:mysqli & 在 null 上调用成员函数 query()
【发布时间】:2015-12-02 11:58:26
【问题描述】:

我对 mysqli 有点陌生,我正在尝试在表格上显示数据。

代码如下:

<tbody>
   <?php
   $query = $mysqli->query("SELECT username,password,FName,LName,userAddress FROM tbl_users");
   $no = 1;
   while($row = $query->fetch_assoc()){
   ?>
   <tr>
  <td><?php echo $no++ ?></td>
  <td><?php echo $row['username'] ?></td>
  <td><?php echo $row['password'] ?></td>
  <td><?php echo $row['FName'] .' '. $row['LName'] ?></td>
  <td><?php echo $row['userAddress'] ?></td>
  <td>
      <a href="update.php?id=<?php echo $row['userid'] ?>" class="btn btn-warning btn-sm"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></a>
     <a onclick="return confirm('Are you sure you want to delete data')" href="delete.php?id=<?php echo $row['userid'] ?>" class="btn btn-danger btn-sm"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
  </td>
  </tr>
  <?php
  }
  ?>
</tbody>

这些是错误:

未定义变量:C:\xampp\htdocs\company\admin\user_table.php 中第 205 行的 mysqli

致命错误:在第 205 行的 C:\xampp\htdocs\company\admin\user_table.php 中调用 null 上的成员函数 query()

【问题讨论】:

  • 在查询中传递数据库连接:$mysqli->query($conn, "SELECT username,password,FName,LName,userAddress FROM tbl_users");
  • @Krishna,不,$mysqli 将是连接资源,它是对象 连接资源 的 oop 样式将资源作为参数传递的程序样式。
  • 如果您尚未创建与数据库的连接,则需要这样做。如果有,您确定将其命名为 $mysqli 吗?
  • 离题了,但这从你的代码中跳出来了:你永远不应该有任何理由回显用户的密码。如果您操作正确,则密码无论如何都会散列且不可读,因此没有必要输出它们。

标签: php mysqli


【解决方案1】:

未定义变量:mysqli 表示您没有创建对象 'mysqli' 或无法获取对象mysqli;即您必须通过 mysqli 的creating an instance establish a connection 到 MySQL 服务器 之前 您可以使用此实例向服务器发送查询。

创建对象

$mysqli = new Mysqli("host","db user","db password","db name");

//连接数据库

关于如何检查连接是否建立成功, 见http://docs.php.net/manual/en/mysqli.construct.php

【讨论】:

  • 如何查看连接是否建立成功,见docs.php.net/mysqli.quickstart.connections。并且解释为什么以及如何与问题相关也很好;-)
  • @VolkerK 如果我的代码解决了未定义变量的问题,您可以投票:mysqli
【解决方案2】:

感谢@Epodax 提醒。刚刚将我的配置更改为 $mysqli。

<?php 
$mysqli = new mysqli('localhost','root','sa','company');
if($mysqli->connect_errno){
echo "Connection Failed".$mysqli->connect_error;
}
?>

【讨论】:

  • 您可能想要添加更多错误处理。剩下的脚本在没有工作连接的情况下无法“运行”,因此,仅打印错误消息是不够的(和might be dangerous)。您应该打印用户表的“抱歉,不可用”页面而不是,以防mysql 连接出现问题。而$mysqli-&gt;query 也可能失败;你也应该在那里添加错误处理。 if ( !$query ) { ....error handler ... } else { while( $row = ...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多