“选择”未选择正确的行 php

问题描述 投票:0回答:1

这是我的代码

if (isset($_GET['ref'])) {
  $ref_id= intval($_GET['ref']); // Sanitize input

  // Query to get the project info
  $projects = $wpdb->get_results($wpdb->prepare("SELECT * FROM table WHERE project_ref = %d", $ref_id));

“ref”是从上一页传递的 然而,结果来自表的第一行 - 即使我硬编码 $ref_id。

这是上一页的代码。

.<a href="../projects?ref=<?php echo $ref; ?>"/><?php echo $_SESSION['project_name'];?>

每个链接都显示正确的

$ref_id

疯狂。我在另一个页面上使用了类似的编码,它可以工作,但不明白为什么不能。

希望能帮到你

php mysql wordpress session
1个回答
0
投票

我为您重新格式化了一些内容并做了一些调整,我已经评论了我的更改,还没有对此进行测试,因为我无权访问您的数据库。

if( isset( $_GET['ref'] ) ) :
    //Let's make sure you're getting the right value from the $_GET
    var_dump( $_GET['ref'] );
    //Try using (int) instead of intval().
    $ref_id = (int)$_GET['ref']; // Sanitize input
    //Query to get the project info
    //Put your table into a variable for the prepare statement, I forget why but you then wrap it in curly brackets
    $table = $wpdb->prefix . 'table_name';
    $projects = $wpdb->get_results( $wpdb->prepare(
        "SELECT * FROM {$table} WHERE `project_ref` = %d",
        $ref_id
    ) );
    //Dumping the results to you can see what's being retrieved.
    var_dump( $projects );
endif;

另外,请确保您应该使用

$_GET
而不是
$_POST
来实现此目的?如果 URL 参数中的 REF 错误,请尝试使用
$_POST

© www.soinside.com 2019 - 2024. All rights reserved.