这是我的代码
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
疯狂。我在另一个页面上使用了类似的编码,它可以工作,但不明白为什么不能。
希望能帮到你
我为您重新格式化了一些内容并做了一些调整,我已经评论了我的更改,还没有对此进行测试,因为我无权访问您的数据库。
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
。