在准备好的语句中选择所有行时,真的需要问号吗?

时间:2018-11-27 04:59:05

标签: php mysqli 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?

我到处搜索,但没有这样的东西。一旦我尝试不使用?,它就会无故出错。我可能是拼写错误,是什么?

1 个答案:

答案 0 :(得分:2)

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

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

这既准备并执行所提供的SQL,但无法安全地绑定参数。

这大致相当于...

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

您也可以使用。

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