我正在尝试学习 PHP,为此我正在尝试创建一个 URL 缩短器。现在您可以输入一个链接并将其输入数据库。它不会随机化字符串,但我稍后会这样做。 (我自己更改了它们以避免遇到问题)。
这是我目前的表格(我的表格称为“urls”):
然后,当您转到(对我来说是本地主机)/somepath 时,它会自动重定向到/process.php?id=somepath
在process.php中,它检查数据库中是否存在指定的路径(somepath),然后获取其原始值。我遇到的问题是获取原始值。再说一遍,我是 PHP 新手,我很难理解查询的工作原理。
$query = "SELECT original FROM urls WHERE new = '$new'";
$result = $conn->query($query);
如何从 $result 中获取信息?或者我应该在 $result 之后从 $query 获取它,因为它基本上只是运行它?
请解释一下为什么使用什么,我不明白。
谢谢,抱歉,如果这是一个非常愚蠢的问题。
最佳答案
在这段代码中,我使用了面向对象的方法
作为准备好的语句
,或者如果您仍然喜欢过程风格
,您仍然可以用那个。
检查此链接:http://php.net/manual/en/mysqli.prepare.php
基本上,这段代码中发生的情况是,正在准备查询,然后绑定(bind)要使用的参数(这种样式是避免 SQL 注入(inject)的一种方法,因为输入会自动转义)。结果将首先存储在变量 $original
中,然后我计算查询返回的行数。如果大于1,则表示有匹配,如果为0,则表示不匹配。
如果有匹配,它将回显变量$original
的值。
<?php
$stmt = $conn -> prepare("SELECT original FROM urls WHERE new = ?");
$stmt -> bind_param('s',$new);
$stmt -> execute();
$stmt -> bind_result($original);
$stmt -> fetch();
$stmt -> store_result();
$res = $stmt -> num_rows();
$stmt -> close();
if($res > 0){
echo $original;
}
else{
//not found
}
?>
关于php - 从查询中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39864756/