![](/img/trans.png)
[英]mysqli_fetch_array & row expects parameter 1 to be 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.