当 select 准备语句中的所有行时真的需要问号吗?

Is question mark really need when select all row in prepared statement?

我想知道如果我不想指定任何行,是否还需要问号。因为bind_param需要它。

$zr="0";
$stmt=$mysqli->prepare("select * from products_db where not prd_id=?");
$stmt->bind_param("i",$zr);//can I skip this line or what?

我到处找都没有。一旦我在没有 ? 的情况下尝试,它就会无缘无故地出错。我可能是打字错误,什么?

如果不需要绑定任何参数,可以使用mysqli::query()

$result = $mysqli->query('SELECT * FROM products_db');

这会准备和执行所提供的 SQL,但无法提供安全绑定参数的方法。

这大致相当于...

$stmt = $mysqli->prepare('SELECT * FROM products_db');
$result = $stmt->execute();

你也可以使用。

请注意,没有位置参数(即 ?),因此无需使用 mysqli_stmt::bind_param()