<?php if (is_array($this->data)): ?>
<?php foreach ($this->data as $key => $val): ?>
<?php endforeach; ?>
<?php else: ?>
Error on loading
<?php
endif;
global $connect;
# GET DEPOSITS
$user = $_SESSION['username'];
$get_iteme2 = $connect->query("SELECT * FROM users WHERE email = '$user'");
$row = $get_iteme2->fetch_array(MYSQLI_ASSOC);
$u = $row['username'];
$get_ref = $connect->query("SELECT * FROM users WHERE refferal = '$u' ");
$row_depo = $get_ref->num_rows;
$get_itemx = $connect->query("SELECT * FROM users WHERE ref = '$u' AND balance > '0' ");
$row_depx = $get_itemx->num_rows;
$ref_c = $row_depx * 0.01;
?>
<div id="ttt" style="margin:0 auto; width:100%; height:40px; background:#245e76; text-align:center; overflow:hidden; border-radius:4px; margin-top:5px;">
<div id="ttt" style="margin:0 auto; width:94%; height:48px; background:#245e76; text-align:center; overflow:hidden; border-radius:4px; margin-top:0px;">
<p style="font-size:12px; margin-top:10px; font-family:Arial; color:white; ">Affliate Page is now under maintenance</p>
</div></div> </br>
</table>
</div>
</div>
</div>
</div>
这是我的代码,奇怪的是$row_depo
没有提供num行,但是如果我在查询中将变量$u
更改为用户名本身,则查询有效,但查询正在读取变量$u
并使用用户名本身,如果它使用变量
答案 0 :(得分:0)
尝试使用$connect->query("...")
代替$connect->prepare("...")
,当您在字符串中插入$var
时使用{}
或连接以获得安全性。
帮助提供帮助:
$get_ref = $connect->query("SELECT * FROM users WHERE refferal = '{$u}'");
$row_depo = $get_ref->num_rows;
答案 1 :(得分:0)
检查是否返回值
$user = $_SESSION['username'];
如果它返回一个值,则检查此返回值
$u = $row['username'];
答案 2 :(得分:0)
$get_ref = $connect->prepare("SELECT * FROM users WHERE refferal = '$u' ");
$row_depo = $get_ref->num_rows;
如果你准备一个陈述,你需要在它有任何结果之前执行它:
$get_ref = $connect->prepare("SELECT * FROM users WHERE refferal = '$u' ");
$get_ref->execute();
$row_depo = $get_ref->num_rows;
虽然,由于您没有绑定任何参数,您也可以直接使用query()
,就像在其他查询中一样:
$get_ref = $connect->query("SELECT * FROM users WHERE refferal = '$u' ");
$row_depo = $get_ref->num_rows;
或最好实际使用带有绑定参数的预准备语句:
$get_ref = $connect->prepare("SELECT * FROM users WHERE refferal = ?");
$get_ref->bind_param("s", $u);
$get_ref->execute();
$row_depo = $get_ref->num_rows;
话虽如此,你问题中的以下几行让我觉得还有其他事情发生了:
如果我将查询中的变量$ u更改为用户名本身,则查询可以正常工作
这可能意味着之前的查询($u
获取用户名的那个查询)没有返回任何结果:
$user = $_SESSION['username'];
$get_iteme2 = $connect->query("SELECT * FROM users WHERE email = '$user'");
$row = $get_iteme2->fetch_array(MYSQLI_ASSOC);
$u = $row['username'];
这是您在查询中使用的$u
。如果$get_iteme2
查询正常运行但未返回任何结果,则$get_iteme2->fetch_array()
将返回NULL
并且$row['username']
将不存在(并且PHP应该为您提供&#34; undefined索引&#34;通知,但根据您的设置,您可能看不到这个。)
如果查询确实正确执行,您必须调试其他内容:
$u
是否包含任何内容,或者它是否为空?$row
是否包含任何内容,或者它是否为空?$_SESSION['username']
是否包含任何内容,如果是,它是否实际包含用户名而不是电子邮件地址(您将其与email
列而不是username
列,这就是为什么命名属性很重要?)