如果里面有字母,php mysql无法找到id

时间:2016-10-18 15:14:22

标签: php mysql mysqli

当我尝试搜索带有数字的可用ID时,它会正确回声。

但是,如果里面有一个字母,像这样:5325252T,它不会在数据库中找到它。 我有一个类型为:longtext

的列

我该如何解决这个问题?我之前从未注意到这个问题,现在我急着解决它......

顺便说一句,如果我回显rusp_9_cf7dbplugin_submits的所有表,它还会显示那些带有字母的id。真的很奇怪。

    // Create connection
$conn = new mysqli($hostname, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT field_value FROM rusp_9_cf7dbplugin_submits WHERE field_value = 5325252T"; // If i remove the T, It will find the id and echo it in a table, but if the T is there, it wont find the id at all...
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    echo "<table><tr><th>ID</th><th>Name</th></tr>";
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<tr><td>".$row["field_value"]."</td><td>".$row["field_value"]." ".$row["field_value"]."</td></tr>";
    }
    echo "</table>";
} else {
    echo "0 results";
}
$conn->close();

1 个答案:

答案 0 :(得分:0)

只需将field_value值括在单个引号'中,因为添加一个字符会使SQL引擎将该值解释为一个数字,因为它是string literal,而如果只是integer然后它将数字解释为... $sql = "SELECT field_value FROM rusp_9_cf7dbplugin_submits WHERE field_value = '5325252T'"; // If i remove the T, It will find the id and echo it in a table, but if the T is there, it wont find the id at all... ...

您的代码变为......

Status = "Reject"