无法从数据库中检索数据

时间:2014-05-06 00:25:27

标签: php html mysql

我有一个html表单,其中包含一个帐号和一个名为retrieve的提交值。单击此检索按钮时,我需要根据客户的帐号打印出某些属性。我在我的代码中试过这个。由于某种原因,它进入函数但不打印行的任何值。我很困惑,不知道从哪里开始解决这个问题。我在mysqlworkbench中有虚拟数据。我已经为其他页面使用了相同的数据库连接,当我将表单发布回数据库时,它工作正常。所以我不确定究竟是什么问题。

我不确定数据库是否在结果中调用查询时丢失了连接?它打印出结果的查询,但是当我在查询后尝试执行var_dump时它说的是NULL。那么有些事可能有问题吗?

我在函数中创建变量$ result时添加了错误检查,每次添加帐号时,都会输出无法输入数据而不是mysql错误。

我的代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

  <title>Create Account</title>

  <link rel="stylesheet" type="text/css" href="style.css">

</head>


<body>

  <div class="header">Our Really Cool Banking App</div>

  <div id="leftcolumn"> 
      <!-- Creating Buttons here -->
      <div id="nav">
        <ul>
          <li><a href="banking.php">Home</a></li>
          <li><a href="checking.php">Checking</a></li>
          <li><a href="savings.php">Savings</a></li>
          <li><a href="createaccount.php">Create Account</a></li>
          <li><a href="createloan.php">Create Loan</a></li>
        </ul>
      </div>
  </div>
  <h2>Checking Account Information Details</h2>

  <div class="inputBox">
    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
      Account Number: <input type="text" name="accountNum"><br>
      <input type="submit" id="Retrieve" name="Retrieve" value="Retrieve">
    </form>
  </div>

  <?php
  //error_reporting(E_ALL); 
  //ini_set('display_errors', 1);

  $properties = parse_ini_file("properties.ini");
  if ( !( $database = mysql_connect( $properties["dbUrl"], $properties["username"], $properties["password"] ) ) ) 
  {
    echo "<p> Be sure to fill out information in the properties.ini file </p>";
    die( "Could not connect to database </body></html>" ); 
  } 

  echo $_POST['Retrieve'] . "is the value";

  if ( !mysql_select_db( $properties["dbName"], $database ) ) 
    die( "Could not open the database </body></html>" );


  if (isset($_POST['Retrieve']))
  {
   accountInfo();
  }

  function accountInfo() {
    $currentAccountNum = $_POST[accountNum];

    $data = "SELECT * FROM Account WHERE AcctNum = '$currentAccountNum'";

    $result=mysqli_query($database, $data);

    if(! $result )
    {
       die('Could not enter data: ' . mysql_error());
    }


    while($row = mysqli_fetch_array($result)) {
       echo $row['AcctNum'];
       echo "<br>";
       echo $row['MemberId'];
       echo "<br>";
       echo $row['creationDate'];
       echo "<br>";
       echo $row['CreatedByEmployee'];
       echo "<br>";
       echo $row['type'];
       echo "<br>";
    }
  }

  mysql_close( $database ); 
?>

</body>

</html>

2 个答案:

答案 0 :(得分:2)

当您正在寻找mysqli_fetch_array()时,您正在使用mysqli_fetch_assoc()

答案 1 :(得分:0)

您的SQL语句中有引号。 尝试:

 $data = "SELECT * FROM Account WHERE AcctNum = " . $currentAccountNum;