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'];