gpt4 book ai didi

php - 联系 API,有时会出现错误...?

转载 作者:行者123 更新时间:2023-11-29 14:24:28 27 4
gpt4 key购买 nike

我编写了 PHP 代码,它连接到 MYSQL 来查找信息,将其发送到 API,并获取响应以写回到新表中。

有时它工作得很好,有时则不然。如果没有,它会给我这个错误

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , , '', '', '')' at line 1

或者有时它会将一两个条目写入新表中,然后在另一行给出错误。哦,即使我为 API 选择相同的数据来查找和发送,有时它会起作用,有时则不会。(我已从发送的字符串中取出所有逗号以减少可能的错误用逗号。)

我想知道这是 API 还是我的代码的问题。我有时无法理解它是如何工作的,并且是代码问题上的问题,这导致了我对可能的 API 问题的思考。

我的假设是:

  1. 我拥有的 API key 功能有限,因此限制了我的结果。
  2. 响应时间很长,因此我的请求超时。

这两者有道理吗?还有其他想法吗?

这是有时会返回一些内容的 php 代码:

有时会出现 echo 。但其他时候则不会。函数 $request->whatever 在 API 函数 php.ini 中可用。

我相信引发错误的 sql 行与此有关:

insertRow($db, $new_table, $Merchant, $ips, $scoreBeforeGeo, $geoFactor, $scoreAfterGeo, $category, $overall_protocol, $protocol_name);

function insertRow($db, $new_table, $Merchant, $ips, $scoreBefore, $geoFactor, $scoreAfter, $category, $overall, $protocol)
{
$insert = "INSERT INTO $new_table " . " VALUES('$Merchant', '$ips', $scoreBefore, $geoFactor, $scoreAfter, '$category', '$overall', '$protocol');";
$q = mysqli_query($db, $insert) || die(mysqli_error($db));
}

再说一遍,有时有效,有时无效......

最佳答案

您的代码不会清理查询的输入或通过参数传递它。这意味着,如果传递到 INSERT 语句的数据包含会被解释为 SQL 语法的字符(例如撇号),则会弄乱您的语句。 它还有可能破坏您的数据或提供对您数据的意外访问。换句话说,这是一种即将发生的 SQL 注入(inject)攻击。

使用准备好的语句来防止这种情况。 http://php.net/manual/en/mysqli.prepare.php

关于php - 联系 API,有时会出现错误...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11249675/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com