簡體   English   中英

mysqli_fetch_row()期望參數1為mysqli_result

[英]mysqli_fetch_row() expects parameter 1 to be mysqli_result

我已經閱讀了很多,它們大部分是數據庫連接或查詢中的錯誤。 我收到此錯誤,並且我擁有良好的連接和良好的查詢。 我知道這是因為我print_r或回顯了$ row的結果,並且得到了匹配的結果。

<?php 
if (!isset($_POST['submit'])) {
    header("Location: http://tsec.tleeaa.org"); 
    exit;   
}
?>
<?php 
session_start();
require_once('Connections/db_tsectleeaa_connection.php');
require_once("_includes/functions.php"); 
?>
<?php $_SESSION['leadadv_email'] = $_POST['leadadv_email']; $email_compare =    $_SESSION['leadadv_email']; ?>
<?php
$dbquery  = "SELECT * ";
$dbquery .= "FROM `tsec_team_registration` "; 
$dbquery .= "WHERE `leadadv_email` = ";
$dbquery .= " '$email_compare' " ;

$result = mysqli_query($db_tsectleeaa_connection, $dbquery);
    if(!isset($result)) {
        die("Database query failed");
    }

while ($row = mysqli_fetch_row($result)){
print_r($row[10]);                  //should match next line
echo "<br />".$email_compare."<br />";          //should match line above
    if ($row[10] === $email_compare){
        echo "match!";

        } else echo "no match!";
} 
?>

最大的問題是IF語句不起作用。 當該語句為true時它將起作用,但是如果為false則將不會“ else”。

該頁面的作用是對照上一頁中的電子郵件進行驗證。 一旦他們點擊“提交”,表格的動作就是這個頁面。 當數據庫的正確位置包含bacon @ burger且用戶使用bacon @ burger作為電子郵件地址時,將發生以下結果:bacon @ burger bacon @ burger匹配!

我仍然收到此錯誤:

( ! ) Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\index_action.php on line 24
Call Stack
#   Time    Memory  Function    Location
1   0.0005  256032  {main}( )   ..\index_action.php:0
2   0.0052  273264  mysqli_fetch_row ( )    ..\index_action.php:24

有人可以指出我的方向嗎?

將其更改為

  if(!$result) {

你寫了:

$result = mysqli_query($db_tsectleeaa_connection, $dbquery);

因此,isset()的確始終為true。

這可能更好:

if($result === false) {
    die("Database query failed");
} else {
    // use mysqli_fetch_row() here.
}

謝謝大家的反饋!!

我找到了答案,並且按照我的想法,這是我的代碼有問題,但它在連接內部。 這是發生了什么。

連接數據庫和對數據庫進行查詢之間有區別。 在連接中,使用mysqli,您只需要$ hostname,$ username和$ password:

$hostname_db_tsectleeaa_connection = "localhost";
$database_db_tsectleeaa_connection = "tsectleeaa2014competition";
$username_db_tsectleeaa_connection = "dbtleeaauser";
$password_db_tsectleeaa_connection = "xxxxxxxxxxx";
$db_tsectleeaa_connection = mysqli_connect($hostname_db_tsectleeaa_connection, $username_db_tsectleeaa_connection, $password_db_tsectleeaa_connection, ***$database_db_tsectleeaa_connection***) or trigger_error(mysqli_error(),E_USER_ERROR); 
if(mysqli_connect_errno()) {
            die ("Database Connection Failed, ".$mysql_connect_error()." (". $mysql_connect_errno()." )");
        }
?>

我的數據庫連接($ db_tsectleeaa_connection)中沒有的是數據庫的實際變量($ database_db_tsectleeaa_connection)。 盡管它將連接數據庫本身,但它無法產生查詢。 一旦將其加載到連接字符串中,就可以了。

您的表名不正確,或者可能拒絕了該特定用戶名和密碼的select命令的權限

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM