在PHP中从表中获取主题
好的,我试图访问一个名为emg_quote的表,我有引号ID,所以我试图从与此ID相同的行获取列主题,但出于某种原因,我得到的只是整个表中的第一行?有人知道我做错了什么吗?这是我的代码:在PHP中从表中获取主题,php,mysql,sql,Php,Mysql,Sql,好的,我试图访问一个名为emg_quote的表,我有引号ID,所以我试图从与此ID相同的行获取列主题,但出于某种原因,我得到的只是整个表中的第一行?有人知道我做错了什么吗?这是我的代码: $row['quote_id'] = quoteTitle($row['quote_id']); function quoteTitle($quoteid){ global $db; $sql = "SELECT subject FROM emg_quote WHERE ".$quoteid
$row['quote_id'] = quoteTitle($row['quote_id']);
function quoteTitle($quoteid){
global $db;
$sql = "SELECT subject FROM emg_quote WHERE ".$quoteid."";
$res = $db->query($sql);
$row = $db->fetch_row();
$output = $row['subject'];
return $output;
}
您可能缺少where列
$sql = "SELECT subject FROM emg_quote WHERE quote_id=".$quoteid."";
^^^^^^^^
我们也看不到您的Db
类是否存在错误
在任何情况下,都不应直接将请求变量放入数据库查询。您可能缺少where列
$sql = "SELECT subject FROM emg_quote WHERE quote_id=".$quoteid."";
^^^^^^^^
我们也看不到您的Db
类是否存在错误
在任何情况下,都不应直接将请求变量放入数据库查询。是否使用自定义对象包装本机API 不管怎样,我看都不对。您似乎没有使用查询结果 i、 e
您是否使用自定义对象包装本机API 不管怎样,我看都不对。您似乎没有使用查询结果 i、 e
您的代码中几乎没有不良实践 A.您躺在
$quoteid
上,以给出正确的where语法。ie:ID=123
这是一种非常不安全的方法,因为用户可以将其更改为Some Important Details='bla'
从该表或其他表中提取更多详细信息
从用户接收数据时,您应该始终转义字符,否则很容易受到SQL注入的影响。相信我,你不会想要它。你的代码中几乎没有错误的做法 A.您躺在
$quoteid
上,以给出正确的where语法。ie:ID=123
这是一种非常不安全的方法,因为用户可以将其更改为Some Important Details='bla'
从该表或其他表中提取更多详细信息
从用户接收数据时,您应该始终转义字符,否则很容易受到SQL注入的影响。相信我,你不会想要的。你必须在where之后使用检查。 在$quoteid变量之前使用列名
$row['quote_id'] = quoteTitle($row['quote_id']);
function quoteTitle($quoteid){
global $db;
$sql = "SELECT subject FROM emg_quote WHERE quoteid=".$quoteid." LIMIT 1 ";
$res = $db->query($sql);
$row = $db->fetch_row();
$output = $row['subject'];
return $output;
}
请记住:使用主键搜索时,请使用限制1,因为您知道只会搜索1条记录。它减少了您的处理时间。您必须在where之后使用检查。
$sql = "SELECT subject FROM emg_quote WHERE ID='".$quoteid."'";
在$quoteid变量之前使用列名
$row['quote_id'] = quoteTitle($row['quote_id']);
function quoteTitle($quoteid){
global $db;
$sql = "SELECT subject FROM emg_quote WHERE quoteid=".$quoteid." LIMIT 1 ";
$res = $db->query($sql);
$row = $db->fetch_row();
$output = $row['subject'];
return $output;
}
请记住:使用主键搜索时,请使用限制1,因为您知道只会搜索1条记录。它可以减少您的处理时间
$sql = "SELECT subject FROM emg_quote WHERE ID='".$quoteid."'";
您没有在where条件下写入db字段名
您没有在where条件下写入db fieldname无法查看
$quoteid
变量中的内容,但可能应该是“从emg中选择主题”,其中quoteid=“.quoteid.”代码>您允许SQL注入。使用准备好的语句并绑定变量。$quoteid是此处的字符串:'$row['quote\U id']=quoteTitle($row['quote\U id']);'@user3004753如果quote_id是一个字符串,H2Oooooo是绝对正确的,您不应该构建这样的SQL语句,您应该参数化您的查询。无法查看$quoteid
变量中的内容,但可能应该是“从emg中选择主题”,其中quoteid=“.quoteid.”代码>您允许SQL注入。使用准备好的语句并绑定变量。$quoteid是此处的字符串:'$row['quote\U id']=quoteTitle($row['quote\U id']);'@user3004753如果quote_id是字符串,那么H2Ooooo是绝对正确的,您不应该像那样构建SQL语句,您应该参数化您的查询。