我对mysql数据库的请求无法正常工作

时间:2017-04-14 10:40:12

标签: php mysql mysqli

我是PHP + MySQL的新手并自己学习。我遇到了一些问题(我想它可能非常简单和愚蠢)但我无法解决它。好。我想从我的数据库中选择一些记录:我使用该函数连接到数据库:

   function connect_bd() {
   $result = new mysqli('localhost', 'root', '*****', 'book_kz');
   if (!$result) {
      return false;
   } else{
    $result->autocommit(TRUE);
   return $result;
}
}

它运作正常。然后我写了验证功能:

function log_in($user_name, $passwrd) {
//  verification of user's name and password in database
// if yes - return true
// otherwise - false

  // connect to database
  $connect = connect_bd();
  if (!$connect) {
     return 0;
  }

  // verification procedure
  $result = $connect->query("select * from admin
                         where user_name='".$user_name."'
                         and passwrd = sha1('".$passwrd."')");

  if (!$result) {
   echo "Incorrect password!".$connect->mysqli_errno;
// return to logging in menu
create_html_url("logo_in.php", "Return to logging menu");
return 0;
     }

  if ($result->num_rows>0) {

     return 1;
  } else {  

     return 0;
  }
$connect->close();
}

它不起作用。特别是$ connect-&gt;查询出了问题。 我将查询"select * from admin where user_name =...."直接放入MYSQL环境中 - 它可以正常工作。但$result = $connect->query("select...没有显示任何内容。我插入了下一个命令echo "</br> print something</br>";echo "</br>print something".$result."</br>";。第一个命令显示字符串print something,下一个显示没有!它看起来像$ result块打印的失败。我检查了一些关于mysqli :: query的样本,但没有发现任何错误。任何人都愿意帮助我,我将非常感激。提前谢谢....

1 个答案:

答案 0 :(得分:0)

当您使用new调用类构造函数时,它基本上总是返回一个类。所以这段代码是错误的:

$result = new mysqli('localhost', 'root', '*****', 'book_kz');
if (!$result) echo "Oh, there's an error!";

取而代之的是:

$mysqli = new mysqli('localhost', 'root', '*****', 'book_kz');

// a connect_errno exists so the connection attempt failed!
if ($mysqli->connect_errno) {
  echo "Error: Failed to make a MySQL connection, here is why: \n";
  echo "Errno: " . $mysqli->connect_errno . "\n";
  echo "Error: " . $mysqli->connect_error . "\n";
  exit;
}