Php 基于单行的MySQL的IF-ELSE
我尝试从SQL表中获取值“entryScans”,并根据IF-ELSE情况将其发送到$output。我做错了什么Php 基于单行的MySQL的IF-ELSE,php,mysql,mysqli,Php,Mysql,Mysqli,我尝试从SQL表中获取值“entryScans”,并根据IF-ELSE情况将其发送到$output。我做错了什么 <?php include ('config.php'); $TicketNo=$_POST["TicketNo"]; $hash=$_POST["hash"]; $sql = "SELECT TicketNo,hash,entryScans FROM `Tickets` WHERE `TicketNo` = '$TicketNo' AND `hash` = '$hash'
<?php
include ('config.php');
$TicketNo=$_POST["TicketNo"];
$hash=$_POST["hash"];
$sql = "SELECT TicketNo,hash,entryScans FROM `Tickets` WHERE `TicketNo` = '$TicketNo' AND `hash` = '$hash'" or die(mysql_error());
$result = mysql_query($sql);
$row=mysql_num_rows($result);
if($row['entryScans'] = 0){
$output="ok";
}
else if ($row['entryScans'] > 0) {
$output="maybe";
else{
$output="error";
}
print(json_encode($output));
mysql_close();
?>
您正在做
if($row['entryScans'] = 0){
它有两个问题,=
是赋值,=
测试等于。第二部分是,您在
$result = mysql_query($sql);
$row=mysql_num_rows($result);
因此,$row
是行数,$result
是查询结果
所以要检查结果集中的行数
if($row == 0){
等等
更新:
如果希望使用列entryScans的值,则需要将调用mysql\u num\u rows()
更改为mysql\u fetch\u assoc()
,因此
$row=mysql_fetch_assoc($result);
然后,您可以将代码的其余部分留给使用$row['entryScans']
您没有处理结果。您只需获得$row
变量中的总行数
您需要通过循环方法处理查询结果
这是一个例子
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
if($row['entryScans'] = 0)
{
$output="ok";
}
else if ($row['entryScans'] > 0)
{
$output="maybe";
}
else
{
$output="error";
}
}
希望这对您有用。一个等号用于赋值(=
),两个等号用于比较(=
)。停止使用mysql.*
它在PHP7中被删除。查看mysqli.*
或PDO
同样,您是完全开放的SQL注入,直接这样获取用户数据。