php - MySQL WHERE 'all' 未提供任何值时

标签 php mysql prepared-statement

我正在编写一个工具来搜索我数据库中的不同记录,您必须在其中指定年份。但是,如果没有输入年份值或等于零,我希望能够选择所有记录。

$stmt = $mysqli->prepare("SELECT * FROM performances WHERE year = ?");
$stmt->bind_param("i", $year);

我曾尝试执行 if 语句,但它们失败了,因为 bind_param 中的参数多于查询中的空格,m.sh:

$stmt = $mysqli->prepare("SELECT * 
                          FROM performances
                          . (($year != 0) ? " WHERE year = ? " : " ")
                          . "");
$stmt->bind_param("i", $year);

谢谢

最佳答案

您可以通过不同的方式实现这一目标,例如:

$stmt = $mysqli->prepare("SELECT * FROM performances WHERE year = :year or 0 = :year");
$stmt->bind_param("year", $year);

关于php - MySQL WHERE 'all' 未提供任何值时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34387518/

相关文章:

php - 每个操作系统的 MPDF 文件大小不同

php - 编写在 OpCode 缓存器上运行的 PHP 程序时要避免的事情

php - 当项目已经存在时更新中间表时出现问题

java - 关于 addBatch(String) 的注意事项

php - 如何使用 PHP 将日期存储在 MySQL 数据库中?

PHP 如果数字小于 100,如何设置数字格式以将百位显示为零?

java - 使用 MySQL 和 JSP 的乌尔都语 (UTF-8) 数据

java - 为什么我的 SQL 查询中找不到列?

MySQL:如何将新的 id 列添加到表中,按旧列分组?

sql-server - 您可以在 sql server 准备好的语句中参数化排序顺序吗?