Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在mysqli_查询中使用变量?_Php_Mysql - Fatal编程技术网

Php 在mysqli_查询中使用变量?

Php 在mysqli_查询中使用变量?,php,mysql,Php,Mysql,我试图根据用户在表单上的输入从数据库返回一个值。 当我使用一个值运行代码时,它工作,但当我输入变量时,它不工作。我相信这很简单,但我就是不明白 以下是有效的代码: $sql_beam = mysqli_query($link,"SELECT cost_ft FROM Beams WHERE number = '201'"); while($row = mysqli_fetch_array($sql_beam)) { echo "<p>" . $row['cost_ft'] .

我试图根据用户在表单上的输入从数据库返回一个值。 当我使用一个值运行代码时,它工作,但当我输入变量时,它不工作。我相信这很简单,但我就是不明白

以下是有效的代码:

$sql_beam = mysqli_query($link,"SELECT cost_ft FROM Beams WHERE number = '201'");


while($row = mysqli_fetch_array($sql_beam))
{
  echo "<p>" . $row['cost_ft'] . "</p>";
  echo "<br>";
}
当我将其更改为此时,它不会:

$beam_num = $_POST['Beam Number'];

$sql_beam = mysqli_query($link,"SELECT cost_ft FROM Beams WHERE number = '$beam_num'");

while($row = mysqli_fetch_array($sql_beam))
{
  echo "<p>" . $row['cost_ft'] . "</p>";
  echo "<br>";
}

将第二行更改为:

$sql_beam = mysqli_query($link,"SELECT cost_ft FROM Beams WHERE number = '". $beam_num ."'");

将第二行更改为:

$sql_beam = mysqli_query($link,"SELECT cost_ft FROM Beams WHERE number = '". $beam_num ."'");
然后$\u POST['Beam Number']为空

此外,决不能将任何用户输入(如get数据的发布)直接放入查询中。Google sql注入以及如何防止它

尝试调试$\u POST['Beam Number']。你应该看到它是空的,然后你必须找出它为什么是空的

如果有值,请进行编辑,然后通过首先将查询字符串放入变量来调试查询字符串

error_log($beam_num);

$query = "SELECT cost_ft FROM Beams WHERE number = '$beam_num'";

error_log($query);

$sql_beam = mysqli_query($link,$query);
如果您仍然有问题,请提供记录的值。

则$\u POST['Beam Number']为空

此外,决不能将任何用户输入(如get数据的发布)直接放入查询中。Google sql注入以及如何防止它

尝试调试$\u POST['Beam Number']。你应该看到它是空的,然后你必须找出它为什么是空的

如果有值,请进行编辑,然后通过首先将查询字符串放入变量来调试查询字符串

error_log($beam_num);

$query = "SELECT cost_ft FROM Beams WHERE number = '$beam_num'";

error_log($query);

$sql_beam = mysqli_query($link,$query);

如果您仍然有问题,请提供记录的值。

如果将查询中的变量括在如下花括号中,则效果最佳:

$beam_num = $_POST['Beam Number'];

$sql_beam = mysqli_query($link,"SELECT cost_ft FROM Beams WHERE number = '{$beam_num}'");

while($row = mysqli_fetch_array($sql_beam))
{
  echo "<p>" . $row['cost_ft'] . "</p>";
  echo "<br>";
}

我在我的一个代码中有这样的代码,并且它起了作用。

如果将查询中的变量括在如下的花括号中,效果最好:

$beam_num = $_POST['Beam Number'];

$sql_beam = mysqli_query($link,"SELECT cost_ft FROM Beams WHERE number = '{$beam_num}'");

while($row = mysqli_fetch_array($sql_beam))
{
  echo "<p>" . $row['cost_ft'] . "</p>";
  echo "<br>";
}

我在我的一个代码中有这样的代码,它起作用了。

在查询之前尝试打印$\u POST['Beam Number']的值,并检查其是否为空。您使用的是MySQLi,因此您应该使用prepared语句!尝试在查询之前打印$_POST['Beam Number']的值,并检查其是否为空。您使用的是MySQLi,因此应该使用prepared语句!这将产生完全相同的字符串,不是吗。据我所知,他的语法很好。应该计算双引号字符串中的变量。这将导致完全相同的字符串,不是吗。据我所知,他的语法很好。应该计算双引号字符串中的变量。要显示我的无知,我如何调试$_POST['Beam Number']?我使用错误日志将其包含在编辑中。调试变量只意味着在代码中的特定点检查该变量的值。如果您不知道错误日志在哪里,那么如果您正在开发lcoalyl,只需将该值回显到浏览器,然后搜索如何找到它。明白了,就像您所说的,表单有问题。非常感谢。为了显示我的无知,我如何调试$_POST['Beam Number']?我使用错误日志将其包含在编辑中。调试变量只意味着在代码中的特定点检查该变量的值。如果您不知道错误日志在哪里,那么如果您正在开发lcoalyl,只需将该值回显到浏览器,然后搜索如何找到它。明白了,就像您所说的,表单有问题。非常感谢。反勾号用于表格和列;单引号用于传递的非整数变量。在本例中,引号最初是正确的。感谢andrewsi和pattyd的帮助,这是表单的问题,而不是php的问题。反勾号用于表和列;单引号用于传递的非整数变量。在本例中,引用最初是正确的。感谢andrewsi和pattyd的帮助,结果是表单问题,而不是php问题。