Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中从表中获取主题_Php_Mysql_Sql - Fatal编程技术网

在PHP中从表中获取主题

在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

好的,我试图访问一个名为emg_quote的表,我有引号ID,所以我试图从与此ID相同的行获取列主题,但出于某种原因,我得到的只是整个表中的第一行?有人知道我做错了什么吗?这是我的代码:

$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语句,您应该参数化您的查询。