Php 如何在方法中传递数组中的变量?
我有很长的多个SQL查询,需要对不同的ID使用多次。我认为最好将这些查询放在方法中的数组中,这样我就可以随时调用它 问题是,我在尝试将ID变量放入查询时遇到了问题。在一个简单的类比中,代码如下:Php 如何在方法中传递数组中的变量?,php,Php,我有很长的多个SQL查询,需要对不同的ID使用多次。我认为最好将这些查询放在方法中的数组中,这样我就可以随时调用它 问题是,我在尝试将ID变量放入查询时遇到了问题。在一个简单的类比中,代码如下: class SqlQueries { protected $_queries; private function $_queriesArr() { $_queries = array( "SELECT * FROM tbl_a WHERE id =
class SqlQueries {
protected $_queries;
private function $_queriesArr() {
$_queries = array(
"SELECT * FROM tbl_a WHERE id = $id_a",
"UPDATE tbl_b SET b = NULL WHERE id = $id_b",
"UPDATE tbl_c SET c = NULL WHERE id = $id_c",
);
return $_queries;
}
public function $callQuery() {
$id_a = 2;
$tbl_a = $this->$_queriesArr();
return $tbl_a[0];
}
public function $mainMethod() {
echo $this->callQuery();
}
}
查询中的变量总是出错。添加一些这样的参数怎么样,但是为什么要以$开头命名函数呢? 顺便说一下,只需将参数添加到函数中,并希望它能按您的喜好工作
private function queriesArr($id_a, $id_b, $id_c) {
$_queries = array(
"SELECT * FROM tbl_a WHERE id = $id_a",
"UPDATE tbl_b SET b = NULL WHERE id = $id_b",
"UPDATE tbl_c SET c = NULL WHERE id = $id_c",
);
return $_queries;
}
您可以尝试在变量名周围加引号<代码>从tbl_a中选择*,其中id='$id_a'。将数组更改为行数组('querys'=>array(…),'variables'=>array());或者数组(array('query'=>'…','vars'=>array(),array('query'=>'…','vars'=>array())这一个有效。谢谢。我忘了使用连接。真糟糕。
class SqlQueries {
protected $_queries;
private function $_queriesArr($id_a='', $id_b='', $id_c='') {
$_queries = array(
"SELECT * FROM tbl_a WHERE id = '".$id_a."' ",
"UPDATE tbl_b SET b = NULL WHERE id = '".$id_b."' ",
"UPDATE tbl_c SET c = NULL WHERE id = '".$id_c."' ",
);
return $_queries;
}
public function $callQuery() {
$id_a = 2;
$tbl_a = $this->$_queriesArr($id_a);
return $tbl_a[0];
}
public function $mainMethod() {
echo $this->callQuery();
}
}