字母不是从表中查询

时间:2016-03-02 15:38:47

标签: javascript php html mysql

我有一个带有BarcodeID(1 2 3 asd)列的表,数值正在工作,我得到正确的输出,但字母不起作用。 它给了我错误

  

未知专栏' asd'在' where子句'

这是我用于查询的代码。

<?php

require '../db/connect.php';

$id= $_POST['id']; // your post variable
$sql = "SELECT BarcodeID, Items, Price FROM stockdata WHERE    BarcodeID=".mysqli_real_escape_string($con,$id);

$result = mysqli_query($con,$sql)or die(mysqli_error($con));

if(mysqli_num_rows($result)>0)
{
    while($row = $result->fetch_assoc()) 
    {
        echo "<tr><td>"." "."</td>" ."<td>". $row["BarcodeID"]."</td>"."<td>" ."Product:  "."</td>" . "<td>".$row["Items"]."</td>" ."<td>" ." price: " ."</td>"."<td class='price'>". $row["Price"]."</td>"."</tr>";
    }
}
else
{
        echo "No results found";
}
mysqli_close($con);

?>

1 个答案:

答案 0 :(得分:1)

改变这个:

$sql = "SELECT BarcodeID, Items, Price FROM stockdata WHERE    BarcodeID=".mysqli_real_escape_string($con,$id);

到此:

$sql = "SELECT BarcodeID, Items, Price FROM stockdata WHERE    BarcodeID='".mysqli_real_escape_string($con,$id)."'";

在价值之前和之后添加'时会发生神奇:mysqli_real_escape_string($con,$id)

修改

它与'一起使用的原因是因为如果不将string标记为string,则MySql无法解释'YOURVALUE'值。 string只是说“嘿!我是string,所以将我解释为integer!”。

integer只有效的原因是因为MySql可以解释任何string而不标记它们。

所以您的错误发生了,因为它试图解释"asd"string而不知道它是^[a-zA-Z][a-zA-Z ''.-]+[a-zA-Z]$

非常基本的东西。

我希望我解释得很好(不是我的母语)。