从表中选择,其中列是 PHP [duplicate] 中的外键

Select from table, where column is foreign key in PHP [duplicate]

提问人:seref 提问时间:11/19/2019 最后编辑:Dharmanseref 更新时间:11/19/2019 访问量:636

问:

即使数据库中有一个条目,使用此查询,我总是得到 0 个条目

$sql = "SELECT * FROM saved_food WHERE user_id = ? AND favorite_food LIKE ?";

$stmt = $conn->prepare($sql);
$stmt->bind_param("is", $me['id'], $favFood);
$stmt->execute();
var_dump($stmt->num_rows);

转储为 0 user_id列是一个外键,向表“user”的 id 显示。 我在这里看不到错误。 外键值有特殊方法吗?

php mysql 选择 mysqli

评论

1赞 Barbaros Özhan 11/19/2019
似乎您需要在问号后面的关键字之前和之后使用通配符。%like
1赞 Dharman 11/19/2019
忘了.你不需要它。它将始终向您显示零行。num_rows
1赞 Dharman 11/19/2019
尝试var_dump($stmt->get_result()->fetch_all());
1赞 Your Common Sense 11/19/2019
只要去掉那句毫无意义的台词,var_dump($stmt->num_rows);
1赞 Your Common Sense 11/19/2019
你不需要它“检查”。要检查数据库中是否有条目,只需获取所选数据即可

答:

0赞 seref 11/19/2019 #1

我收到错误...脸掌我忘了打电话给->get_result();

$sql = "SELECT * FROM saved_food WHERE user_id = ? AND favorite_food LIKE ?";

$stmt = $conn->prepare($sql);
$stmt->bind_param("is", $me['id'], $favFood);
$stmt->execute();
$result = $stmt->get_result();
var_dump($result->num_rows);

评论

0赞 11/19/2019
SQL 错误 (1064):您的 SQL 语法有错误;检查与您的MySQL服务器版本相对应的手册,了解在第1行的“?”附近使用的正确语法
0赞 tadman 11/19/2019
如果准备得当,这应该可以工作。