【问题标题】:Unexpected boolean value in php mysqlphp mysql中的意外布尔值
【发布时间】:2013-06-11 18:14:33
【问题描述】:

我知道我提交的输入框的内容存在于 table1 中,但是这个查询:

$check = mysqli_query($con, "SELECT name FROM table1 WHERE name=$_POST[inputbox]");

var_dump($check);

给我一​​个布尔值(假)

我做错了什么?

【问题讨论】:

  • 您对 SQL 注入敞开了大门。请了解如何使用参数化查询(最好使用 PDO 模块)来保护您的 Web 应用程序。 bobby-tables.com/php 有一些示例可以帮助您入门。
  • @AndyLester 感谢您的关注。这将仅由我在本地使用。它不会在互联网上进行。
  • 早点养成好习惯可能不是一个坏主意……
  • @summea 非常正确。谢谢。

标签: php mysql boolean


【解决方案1】:

不妨试试:

$check = mysqli_query($con, "SELECT name FROM table1 WHERE name='".$_POST[inputbox]."'");

【讨论】:

  • +1 但不要忘记mysqli_real_escape_string。不过我更喜欢 PDO :)
  • 酷,这样做给了我一个不同的结果,这意味着它正在工作。现在我如何利用显示为的结果: object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"] => NULL ["num_rows"]=> int(6) ["type"]=> int(0) }
  • @phptinkerer 使用 mysqli_fetch_array 将结果分配给数组
  • @CarlosBergenDyck 再次感谢。
【解决方案2】:

一般建议,如果您想知道出了什么问题,请使用mysqli_error()

$result = mysqli_query($con, '......');
if(!$result) {
    die(mysqli_error($con));
}

【讨论】:

  • 谢谢,但我没有收到错误,只是意外结果。
【解决方案3】:

检查 $con 变量是否为真,因为如果连接失败,您将始终得到 bool(false)。

如果可以,请尝试按名称更新查询 LIKE '" . $_POST[inputbox] . "';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 2017-10-14
    相关资源
    最近更新 更多