【问题标题】:How to bind variable using prepared statement如何使用准备好的语句绑定变量
【发布时间】:2013-01-06 07:38:41
【问题描述】:

我在 html 中有一个表格,用户可以在其中单击一行,并将该行的数据属性传递给屏幕上加载的 PHP 文件。我希望这个 PHP 文件包含一些与传递的变量相关的数据。

例如,这里是定义变量的简单 jQuery:

$(document).on('click', 'tr', function() {
    var id = $(this).attr("data-recordId");
    $('#section2').load('data_entry_form.php?id='+id);
});

这里的 PHP 旨在使用 id 变量并获取关联元素(根据 SQL 查询),其中 id = 到 fee_source_id。 PHP 出了什么问题?它不起作用。我想简单地回显/显示条件 fee_source_id = :id 为真的 SQL 查询的结果。

<html>
<form>
<?php

require_once 'config.php';

$dbh = new PDO($dsn, $dbuser, $dbpass);

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$id = $_GET['id'];

$sth = $dbh->prepare('
    SELECT a_aif.aif_id,
      a_aif.fee_source_id,
      a_aif.company_name_per_sedar,
      a_aif.document_filing_date
    FROM  a_aif
    WHERE a_aif.fee_source_id = :id');
$sth->bindParam(':id', $id, PDO::PARAM_STR);
$sth->execute();

?>
</form>
</html>

【问题讨论】:

  • 当你说“它不工作”时,它是什么意思?您正在构建一个 SELECT 查询,但没有对结果做任何事情...编辑:并且您的查询中有 语法错误,请删除 FROM 之前的 ,
  • @NullPointer 我知道 PDO 并连接到数据库...
  • @DCoder 我已经更新了问题以向您展示我想要对结果做什么......只需回显结果即可。
  • 您从哪里得知 是从数据库中获取结果的方式? NullPointer 发布的链接不仅仅是“使用 PDO”,它包含有关如何正确选择数据的教程。另请参阅this PDO tutorial

标签: php pdo prepared-statement


【解决方案1】:

您需要fetch 结果集的行。然后回显您需要的字段。

如果您要返回数组,则使用 $.getJSON 而不是 $('#section2').load 可能会有所帮助

$sth = $dbh->prepare('
        SELECT a_aif.aif_id,
          a_aif.fee_source_id,
          a_aif.company_name_per_sedar,
          a_aif.document_filing_date
        FROM  a_aif
        WHERE a_aif.fee_source_id = :id');
    $sth->bindParam(':id', $id, PDO::PARAM_STR);
    $sth->setFetchMode(PDO::FETCH_ASSOC);
    $sth->execute();
    $row  = $sth-> fetch(); // returns 1 row
    //$data[] = $row; Returns all of array 
    //$id = $row['id'];// Returns indivadual fiels in array

    echo $data;

【讨论】:

    猜你喜欢
    • 2013-03-13
    • 1970-01-01
    • 2018-01-03
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 2018-12-03
    相关资源
    最近更新 更多