【问题标题】:Is there a way yo use the result of a sql query in a where when making a form submition?有没有办法在提交表单时使用 sql 查询的结果?
【发布时间】:2022-01-06 16:50:34
【问题描述】:

我目前正在尝试使用 sql 查询从表中最后插入的行中获取 id,并希望在另一个 sql 查询中使用此 id,我在其中更新电话号码,但真的无法得到这个去工作。 凭据工作正常,出于安全原因,我已将其删除。 很抱歉有任何错误,编程新手。

我的代码:

error_reporting(E_ALL);
ini_set('display_errors', 1);

    $pdo = new PDO('mysql:host=;dbname=','','');
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    //insert data 

$insertid = "SELECT id FROM dados ORDER BY id DESC LIMIT 1";//the first query where i get the id

    if(isset($_POST['telefone'])){

      $sql = $pdo->prepare("UPDATE dados SET telefone=? WHERE id = ($insertid) "); //where i wanted to use the id
      $sql->execute(($_POST['telefone']));
    //  echo 'telefone inserido com sucesso';
    }
?> 

但我不断收到错误:警告:PDOStatement::execute() 期望参数 1 是数组,第 28 行给出的字符串 ($sql->execute(($_POST['telefone']));)

【问题讨论】:

标签: php mysql sql


【解决方案1】:

PDOStatement::execute() 确实希望第一个参数是一个数组。所以你应该改变这个:

$sql->execute(($_POST['telefone']));

用这个:

$sql->execute([$_POST['telefone']]);

【讨论】:

    【解决方案2】:

    实际上我不需要使用 2 个查询,只需要一个,它是这样的:

    $sql = $pdo->prepare("UPDATE dados SET telefone=? ORDER BY id DESC LIMIT 1");

    感谢@forpas 澄清!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多