PHP 变量不在查询中求值

标签 php search mysqli

<分区>

我是 PHP 和 MySQL 的新手,我就是搞不懂这个。我在论坛上到处搜索,但没有找到我能理解的答案。我最初使用的是 mysql_fetch_assoc() 但我只能搜索数字并且在搜索字母时也收到错误。我希望我在这里走在正确的轨道上。预先感谢您的所有帮助!

$con = mysqli_connect($hostname,$username,$password) or die ("<script language='javascript'>alert('Unable to connect to database')</script>");
mysqli_select_db($con, $dbname);

if (isset($_GET['part'])){
    $partid = $_GET['part'];
    $sql = 'SELECT * 
        FROM $usertable 
        WHERE PartNumber = $partid';

    $result = mysqli_query($con, $sql);
    $row = mysqli_fetch_assoc($result);

    $partnumber = $partid;
    $nsn = $row["NSN"];
    $description = $row["Description"];
    $quantity = $row["Quantity"];
    $condition = $row["Conditio"];
}

最佳答案

当您的结果不是结果(而是“假”)时,就会发生这种情况。 你应该改变这一行

$sql = 'SELECT * FROM $usertable WHERE PartNumber = $partid';

为此:

$sql = "SELECT * FROM $usertable WHERE PartNumber = $partid";

因为 "可以解释 $variables 而 ' 不能。

适用于整数(数字),对于字符串,您需要将 $variable 放在单引号中,例如

$sql = "SELECT * FROM $usertable WHERE PartNumber = '$partid' ";

如果你想/必须使用单引号,那么 php 不能解释变量,你必须这样做:

 $sql = 'SELECT * FROM '.$usertable.' WHERE string_column = "'.$string.'" AND integer_column = '.$number.';

关于PHP 变量不在查询中求值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11347971/

相关文章:

php - 使用 Codeigniter 搜索表单

php - PHP 应用程序的单元、集成和系统测试

javascript - 拉维 Vue.js : Error in render: "TypeError: Cannot read property ' user' of null"

PHP fetch_array 对象错误

php mysql AND 运算符

android - 如何避免 android SQLite 中的特殊字符?

跨多个表的 MySQL 关键字搜索

c++ - 根据条件和优先级搜索容器中的项目

javascript - 使用 HTML 和 PHP 的动态表

php - 一起运行完全不相关的查询的最佳方式?