2014-02-12 65 views
0

我已經閱讀了很多這些內容,它們大部分都是在數據庫連接或查詢中發生錯誤。我得到這個錯誤,我有一個很好的連接和一個很好的查詢。我知道這是因爲我print_r或回顯$行的結果,我得到匹配的結果。mysqli_fetch_row()期望參數1是mysqli_result

<?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語句無法正常工作。當陳述是真實的時候它將起作用,但如果它是假的,它不會去「其他」。

此頁面執行的操作是根據放入上一頁的電子郵件進行驗證。一旦他們點擊「提交」,表單的動作就是這個頁面。當數據庫的bacon @ burger放在正確的地方,並且用戶使用bacon @ burger作爲電子郵件地址時,會發生以下結果: bacon @ burger bacon @ burger match!

我仍然得到這個錯誤:

(!) 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 

任何人都可以點我可能什麼對的方向嗎?

+1

檢查您是否連接到數據庫。如果有效,連接將返回資源,否則返回錯誤。 –

+0

$結果應該來自mysqli_result函數而不是mysqli_query函數。 – Maximus2012

+0

看看是否有幫助: http://stackoverflow.com/questions/13053660/mysqli-query-mysqli-fetch-array-and-while-loop – Maximus2012

回答

1

變化,如果statment到

if(!$result) { 
0

您寫道:

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

爲此,一個isset()函數並不總是爲true。

這可能會更好:

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

OK謝謝大家的所有反饋!

我找到了答案,正如我想的那樣,這是我的代碼問題,但它在連接內部。這是發生了什麼。

CONNECTING到數據庫並對數據庫進行QUERY是有區別的。在連接,使用mysqli的,你只需要$主機,$ 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)。鑑於這將連接數據庫本身,它不能產生查詢。一旦我將它加載到連接字符串中,就沒事了。

相關問題