Php 使用$\u GET获取搜索词,将数组转换为请求的列

Php 使用$\u GET获取搜索词,将数组转换为请求的列,php,mysql,arrays,mysqli,Php,Mysql,Arrays,Mysqli,直到今天,我才从MySQL\uu更改为PDO。不用说,移民不仅仅是一个简单的头痛问题。所以,我需要一些帮助。在注册和问这个问题之前,我尝试了所有的搜索词 我的问题 用户在搜索框中键入数字代码,并将其转换为 .php?code=term 脚本从数据库中选择代码所在的所有列 搜索的代码项 PHP将响应结果 我的代码 if (isset($_GET["code"])) { //IF USER SEARCHES FOR CODE, RUN THIS. ELSE SKIP.

直到今天,我才从
MySQL\uu
更改为
PDO
。不用说,移民不仅仅是一个简单的头痛问题。所以,我需要一些帮助。在注册和问这个问题之前,我尝试了所有的搜索词

我的问题

  • 用户在搜索框中键入数字代码,并将其转换为 .php?code=term
  • 脚本从数据库中选择代码所在的所有列
    搜索的代码项
  • PHP将响应结果
我的代码

if (isset($_GET["code"])) {
        //IF USER SEARCHES FOR CODE, RUN THIS. ELSE SKIP.
        $crimecode = $_GET["code"];

        $crcode = $link->prepare("SELECT * FROM crimecodes WHERE code = :code");
        $crcode->bindParam(':code', $crimecode);
        $crcode->execute();

        $coderesult = $crcode->fetchAll();


        echo "<h4>CODE:</h4>";
        echo $crimecode;
        echo "<br /><h4>DEFINITION:</h4>";
        echo $coderesult;

        die();      

    }
但是,不断发展的世界已经决定修复一些没有被破坏的东西,所以现在所有先前的代码都是毫无意义的,你必须学习一些新的东西。感谢您的帮助,让这项工作顺利进行

现在,上面的PDO代码返回定义:ARRAY

与字面意思类似,
$codesult
打印
Array

fetchAll()
选项返回一个包含所有结果集行的数组()

$codesult
打印
数组
,因为它实际上是一个数组。如果您执行
var\u dump($codesult)
您将看到它

我想你只是想得到一排。如果是这种情况,请在
$codesult=$crcode->fetchAll()之后添加此行

$codesult=$codesult[0]

那你可以

echo$codesult['definition']

如果试图获取多行,则需要使用
foreach
在数组中循环


我建议您阅读PDO类或mysqli的php手册,无论您喜欢在哪里。有比mysql多得多的选项

另外,我认为值得一提的是,您以前的代码

$qcode = mysql_query("SELECT * FROM crimecodes WHERE code = $crimecode");
$fcode = mysql_fetch_assoc($qcode);

echo $fcode['definition'];

它很容易受到攻击

PDO
Mysqli
是两个不同的驱动器。看起来您正在使用
PDO
。在它变得简单之前,您就有一个很好的SQL注入漏洞(假设您没有将
$code
强制转换为整数);它工作得很好。非常感谢。一个小时的挫折得到了解决。我还有第二个问题:我的“定义”调用是小写的,而在数据库中它是大写的。var_dump向我展示了我的问题。@MichaelHarris我总是在表和列名中使用小写字母,这不是规则,但我建议你也这样做。这有助于避免此类问题。:)
$qcode = mysql_query("SELECT * FROM crimecodes WHERE code = $crimecode");
$fcode = mysql_fetch_assoc($qcode);

echo $fcode['definition'];