gpt4 book ai didi

php - 使用 PHP GET 变量的 MySQL SELECT 语句

转载 作者:搜寻专家 更新时间:2023-10-30 20:05:18 24 4
gpt4 key购买 nike

我有一个生成 MySQL 选择语句的 PHP 脚本:

从 word = 'Classic' 的单词中选择 *

words表中只有一个词的变量word等于Classic。

当我的 PHP 页面执行时,我没有从查询中得到任何结果。如果我回显用于执行查询的字符串,将其剪切并粘贴到数据库中 PHPMyAdmin 的 SQL 窗口中,我也不会得到任何结果。但是,如果我在 PHPMyAdmin 的 SQL 窗口中重新键入那个确切的字符串(使用相同的引号字符),我会得到一行的正确结果。

select 语句中的单词 Classic 是从 PHP GET 获取的(请参见下面的代码)。我可以回显 $word 变量,并得到“Classic”的正确结果。我做错了什么?

这是我的代码:

<?php

require ('dbconnect.php');

$word = $_GET["word"];

$selectStr = "SELECT * FROM words WHERE word = '" . $word . "'";

if ($results = MySQL($dbName, $selectStr))
{
$rowCount = MySQL_NUMROWS($results);
}

$resultRow = MYSQL_FETCH_ROW($results);

$wordID = $resultRow[0];

?>

最佳答案

拜托,拜托,请清理那个词。 mysql_real_escape_string() 应该可以解决问题。

$selectStr = "SELECT * FROM words WHERE word LIKE '". $sanitized_word_i_promise 。 "'"; 应该有效 :)

只是为了解释:“=”应该适用于完全匹配。这包括大写/小写、空格等。在查询中使用它之前,您可能也应该先修剪该结果。

如果您在数据库中存储了 foo(注意末尾的空格)- 它不会匹配没有空格的 foo。您可能需要使用 LIKE 'foo%'

无论哪种方式,Sourabh 都是正确的,尽管在性能方面,这在尝试匹配精确字符串时并不是一个大问题,您应该首先在其他地方查找问题(例如,数据库中的项目是精确的匹配?)。

关于php - 使用 PHP GET 变量的 MySQL SELECT 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12286423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com