gpt4 book ai didi

php - Mysql 返回表中列等于用户输入的所有值

转载 作者:行者123 更新时间:2023-11-29 18:40:36 25 4
gpt4 key购买 nike

我有一些接受数字的 sql 语句,如果该数字等于数据库中列的值,它应该返回数据库中具有相同值的所有行。不幸的是,这些行仅返回值为 0 的 blog_post_id。

这是我的代码:

<?php
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);
$blog_post_id = !empty($_POST['blog_post_id']) ? $_POST['blog_post_id']
: '';

$pdo=new PDO("mysql:dbname=db;host=localhost","username","password",
$options);
$statement=$pdo->prepare("SELECT * FROM comment WHERE blog_post_id =
'$blog_post_id'");
$statement->execute();
$results=$statement->fetchAll(PDO::FETCH_ASSOC);
$json=json_encode($results);
if ($json)
echo $json;
else
echo json_last_error_msg();

?>

最佳答案

您实际上错过了使用函数 prepare() 的要点,您需要检查查询是否确实返回任何结果..

<?php
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
);
$blog_post_id = !empty($_POST['blog_post_id']) ? $_POST['blog_post_id'] : '';

$pdo = new PDO("mysql:dbname=db;host=localhost", "username", "password", $options);
$statement = $pdo->prepare("SELECT * FROM comment WHERE blog_post_id = ?");
$statement->execute([$blog_post_id]);
$results = $statement->fetchAll(PDO::FETCH_ASSOC);

$json = array();

if (count($results) > 0) {
foreach ($results as $row) {
$json[] = array(
'id' => $row['blog_post_id'],
'Field' => $row['Column'],
'AnotherField' => $row['AnotherColumn'],
'AnotherField1' => $row['AnotherColumn1'],
'ETC' => $row['AnotherColumnName']
);
}

echo json_encode($json);
} else {

echo "no data found";
}

?>

关于php - Mysql 返回表中列等于用户输入的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44969487/

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