直到今天,我还没有从MySQL_
更改为PDO
。不用说,迁移不仅仅是一个简单的头痛问题。所以,我需要一些帮助。在注册并提出这个问题之前,我尝试了所有搜索条件。
我的问题
我的代码
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();
}
之前,很简单。我所要做的就是:
$qcode = mysql_query("SELECT * FROM crimecodes WHERE code = $crimecode");
$fcode = mysql_fetch_assoc($qcode);
echo $fcode['definition'];
但是,不断发展的世界决定修复一些没有被破坏的东西,所以现在整个先前的代码毫无意义,你必须学习新的东西。感谢任何帮助以使其发挥作用。
现在,上面的PDO代码返回定义:ARRAY。
就像字面意思一样,$coderesult
打印Array
。
答案 0 :(得分:0)
fetchAll()
选项返回一个包含所有结果集行(http://php.net/manual/pt_BR/pdostatement.fetchall.php)的数组。
$coderesult
打印Array
,因为它实际上是一个数组。如果你var_dump($coderesult)
,你会看到它。
我想你只是试图获得一排。如果是这种情况,请在$coderesult = $crcode->fetchAll();
之后添加此行:
$coderesult = $coderesult[0];
然后你可以
echo $coderesult['definition'];
如果您尝试获取多行,则需要使用foreach
循环遍历数组。
我建议你阅读PDO Class或mysqli的php手册,无论你喜欢什么。除mysql_
之外还有更多选项。
此外,我认为值得一提的是您之前的代码
$qcode = mysql_query("SELECT * FROM crimecodes WHERE code = $crimecode");
$fcode = mysql_fetch_assoc($qcode);
echo $fcode['definition'];
它容易受到SQL Injection的攻击。