我是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->查询出了问题。
我将查询"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的样本,但没有发现任何错误。任何人都愿意帮助我,我将非常感激。提前谢谢....
答案 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;
}