簡體   English   中英

將所有參數作為數組PHP mysqli查詢傳遞?

[英]Pass all parameters as array PHP mysqli query?

我想傳遞數組中的所有參數,而不是逐個傳遞它們。

我的查詢:

Select col_1,col_2,col_3,col_4 FROM table WHERE col_1=?i AND col_2 =?s AND col_3=?i AND col_4=?s;

$list = $db_con->getAll($sql, 12,'string',18,'name'); //Currently I've passed

是否有可能通過以下?

$list = $db_con->getAll($sql, array(12,'string',18,'name')); //Want to do

提前致謝。

從PHP 5.6開始,您可以使用splat運算符

$args = array(12,'string',18,'name');
$list = $db_con->getAll($sql, ...$args); 

如果您的PHP版本不是最新的,那么call_user_func_array()可以這樣使用:

$sql = "Select col_1,col_2,col_3,col_4 FROM tabele WHERE col_1=?i AND col_2 =?s AND col_3=?i AND col_4=?s";
$args = array(12,'string',18,'name');
array_unshift($args, $sql);
$list = call_user_func_array(array($db_con, 'getAll'), $args);

但是你可以看到第一個版本更好,更不用說5.6以下的所有PHP版本都已經過時了 - 所以我強烈建議你升級。

你可以寫這個

Select col_1,col_2,col_4 FROM tabele WHERE (col_1=?i or col_1 =?i) IN (col_2=?i or col_2 =?i);

$list = $db_con->getAll($sql, 1,2,1,2); //Currently I've passed

$list = $db_con->getAll($sql, array(1,2,1,2)); //Want to do

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM