我正在开展一个项目,我将一个id存储在一个表中,该表与文件名链接。在请求id时,SQL返回文件名。是的,Redis最适合这类事情,但我不知道如何使用PHP。
无论如何,以下代码返回一个空结果:
<?php
mysql_connect("localhost","USER","PASSWORD") or die("Unable to connect to SQL server");
mysql_select_db("DATABASE") or die("Unable to select the database");
$scaped = mysql_real_escape_string($_GET["id"]);
$res = mysql_query("SELECT fn from links WHERE id=$scaped");
mysql_close();
echo $res;
?>
我知道在请求页面时我正在使用的密钥,但是我得到一个空的结果并且没有错误。发生了什么事?
编辑:我明白了:Unknown column 'rytughguyig78iu786546789' in 'where clause'
长字符串是我的id。我的where子句是这样的。那里有什么不对?
答案 0 :(得分:3)
更改行
$res = mysql_query("SELECT fn from links WHERE id=$scaped");
到
$res = mysql_query("SELECT fn from links WHERE id='".$scaped."' limit 0,1");
并打印出记录:
$result = mysql_fetch_row($res);
print_r($result);
答案 1 :(得分:1)
mysql_result将返回某种结果集对象。所以你需要: 1.)检查结果集对象是否有记录 2.)从结果集中获取结果记录 3.)打印出来。
示例如:
$res = mysql_query("SELECT fn from links WHERE id='$scaped'");
if( mysql_num_rows( $res ) >0){
$record = mysql_fetch_assoc($res); //other options: mysql_fetch_object, mysql_fetch_row
print $record['fn'];
}
链接: mysql_num_rows,mysql_fetch_assoc,mysql_fetch_object,mysql_fetch_row
在您的错误消息后更新答案: 将$ scaped更改为'$ scaped'进行字符串比较
答案 2 :(得分:1)
更改
"SELECT fn from links WHERE id=$scaped"
到
"SELECT fn from links WHERE id='$scaped'"