常数ex:define('PERMANENT_EMPLOYEE',array('1,'2','3'));
SELECT * from employee where id IN('PERMANENT_EMPLOYEE');
以上选择不起作用。
答案 0 :(得分:0)
您无法将数组指定为常量。尝试这样做:
define('PERMANENT_EMPLOYEE', json_encode(array('1','2','3')));
$sql = 'SELECT * from employee where id IN(' . implode(',', json_decode(PERMANENT_EMPLOYEE, true)) . ')';
答案 1 :(得分:0)
你需要传递一个字符串,因为你现在正在使用数组
define("PERMANENT_EMPLOYEE","'1','2','3'");
echo 'SELECT * from employee where id IN ('.PERMANENT_EMPLOYEE.')';
我已经用这种方式检查了
答案 2 :(得分:0)
使用PHP join函数,然后按如下所示编写查询: -
$ids = join(',',[1,2,3]);
$sql = "SELECT * FROM employee WHERE id IN ($ids)";
如果你想通过常数使用数组,那么你应该使用serialize,
define('PERMANENT_EMPLOYEE',serialize(array(1,2,3)));
$ids = join(',',unserialize(PERMANENT_EMPLOYEE));
$sql = "SELECT * FROM employee WHERE id IN ($ids)";