我已经阅读了很多这些内容,它们大部分都是数据库连接或查询中的错误。我收到此错误,我有一个良好的连接和良好的查询。我知道这是因为我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语句不起作用。当语句为真时它将起作用,但如果它是假的则不会“否则”。
此页面的作用是验证上一页中的电子邮件。一旦他们点击“提交”,表单的操作就是这个页面。当数据库在正确的位置有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
有人能指出我可能会发生什么事情的方向吗?
答案 0 :(得分:1)
将if语句更改为
if(!$result) {
答案 1 :(得分:0)
您写道:
$result = mysqli_query($db_tsectleeaa_connection, $dbquery);
因此,isset()总是评估为true。
这可能会更好:
if($result === false) {
die("Database query failed");
} else {
// use mysqli_fetch_row() here.
}
答案 2 :(得分:0)
好的感谢所有人的反馈!!
我找到了答案,正如我想的那样,这是我的代码的问题,但它在连接内部。这是发生了什么。
CONNECTING与数据库和对数据库进行QUERY之间存在差异。在连接中,使用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)。而那将连接数据库本身,它不能产生查询。一旦我将其加载到连接字符串中,就可以了。
答案 3 :(得分:-1)
您的表名不正确,或者对于该特定用户名和密码的select命令可能被拒绝