使用方法:sql == true vs sql === true?

时间:2017-09-09 21:16:00

标签: javascript php jquery html ajax

拜托,看看这里;并感谢所有人! 我正在尝试创建一个用于升级游戏中的建筑物的系统。我为所有建筑物升级了div。当玩家单击构建(div)时,运行一个函数以显示由ajax帖子填充的hide div以及升级成本。 div的类'name'(与db的建筑名称相同)被发送到php以获取所需的数据。它工作正常,直到现在......我添加了一个单击事件到一个按钮,该按钮应该将div'name'发送到另一个php,它应该执行升级操作并在响应ajax字段中回显“正确”。但是当我点击btn时,它显示没有日志错误...错误:SELECT ress1,ress2 FROM cost_cladiri WHERE building ='camp_1'(我已经从db而不是变量(div名称)插入了一个建筑名称来访问php直接,但同样的错误...... 这是我的ajax和我的php

    function getbuild(e) {  
  $.ajax({
  type: 'post',
  url: '../account-handeling/get_cost_upgrade.php',
  data: {
  building: e.className,
},
  success: function (response){
   $('#display_cost').html(response); 
$("#increase").click(function(){  
    $.ajax({
  type: 'post',
  url: '../account-handeling/upgrade_handle.php',
  data: {
  building: e.className,
}, 
  success: function (response){
   $('#display_cost').html(response);
  }
});
})  
       }
    });
  }

upgrade_handle.php

if(!isset($_SESSION))
{
session_start();
}
$dbserver           = "localhost";
$dbusername         = "root";
$dbpassword         = "";
$db                 = "worlddomination";

$conn = mysqli_connect($dbserver,$dbusername,$dbpassword,$db);
if ($conn->connect_error) 
{
    die("No connection:".$conn->connect_error);
}

$username = $_SESSION['username'];
//$buildcost = $_POST['building'];

$sql    = "SELECT ress1,ress2 FROM cost_cladiri WHERE building = 'camp_1'";
$result = mysqli_query($conn,$sql);
$row = mysqli_fetch_assoc($result);
$ress1 = $row['ress1'];
$ress2 = $row['ress2'];
if($conn->query($sql) === TRUE){
    echo "$ress1";
}
else{
    echo "Error: ".$sql."<br/>".$conn->error;
}

我做错了什么?感谢!!!

1 个答案:

答案 0 :(得分:1)

对于select查询,Mysqli::query方法将返回mysqli_result对象,因为它可能是== true,它不会是=== true

  

失败时返回FALSE。对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。

我会尝试检查!== falseinstanceof mysqli_result

编辑:你也可以两次查询同一个东西,一次是面向对象,一次是程序性的。