相关疑难解决方法(0)

将php数组传递给sql查询

我正在尝试对与php数组中的值匹配的行进行sql查询.

基本上我有一个类似的数组

$userIDs[0] = 23456;
$userIDs[1] = 42901;
$userIDs[2] = 82731;
$userIDs[3] = 23921;
Run Code Online (Sandbox Code Playgroud)

并且想要执行单个SQL查询以获取与此数组匹配的行

SELECT * FROM users WHERE userID IN $userIDs
Run Code Online (Sandbox Code Playgroud)

是否有捷径可寻?或者我是否必须手动构建查询字符串?

php sql

4
推荐指数
1
解决办法
1万
查看次数

格式化SQL"IN"子句的PHP数组

我正在尝试在数据库中查询"product_id"包含在产品ID数组中的记录.

数组是多选输入(<select>)的结果,如下所示:

$clients = 
  Array ( 
    [0] => 80000016-1302638679
    [1] => 8000003B-1329924004
  )
Run Code Online (Sandbox Code Playgroud)

我想将该数组传递给SQL语句的"IN"子句,例如:

$sql = "SELECT * FROM sales WHERE product_id IN (".$clients.")";
Run Code Online (Sandbox Code Playgroud)

...但这不起作用(错误:) Message: Array to string conversion.

一些帖子建议使用此函数以适合SQL的方式格式化数组:

function format_array($array){
    return implode(', ', $array);
  }
}
Run Code Online (Sandbox Code Playgroud)

如 ...

$sql = "SELECT * FROM sales WHERE product_id IN (".format_array($clients).")";
Run Code Online (Sandbox Code Playgroud)

这导致了这个查询:

SELECT * FROM sales WHERE product_id IN (80000016-1302638679, 8000003B-132992400)

......而且这个错误:

Unknown column '8000003B' in 'where clause'

我究竟做错了什么?任何帮助是极大的赞赏!如果需要,我可以澄清这个问题:)

php mysql codeigniter

4
推荐指数
2
解决办法
5189
查看次数

如何从数组中删除最后一个逗号(,)?

我已经通过了这个地址:

使用WHERE子句将数组传递给查询

并发现如果我使用join子句来分隔值,也在数组的末尾.我怎么能删除最后一个?

我这样用

$ttst=array();
$ttst=array(); 
$tt = "SELECT frd_id FROM network WHERE mem_id='$userId'"; 
$appLdone = execute_query($tt, true, "select"); 
foreach($appLdone as $kk=>$applist){ 
    $ttst[] = $applist['frd_id']; 
} 
$result = implode(',', $ttst); 
Run Code Online (Sandbox Code Playgroud)

然后也是最后一个,

谢谢.


但它没有给每个值单引号.

php

3
推荐指数
2
解决办法
2万
查看次数

用php数组的Mysql SELECT语句

我在php中创建了一个包含一些USER_ID的数组.我正在使用具有名为USERS的表的mysql数据库.现在我想只从USERS中选择那些user_id与数组中的USER_ID匹配的行.

提前致谢

php mysql

3
推荐指数
2
解决办法
5884
查看次数

将数组转换为 WHERE IN mysql 子句的格式

我有一个包含字符串的数组

例如数组('14183f6c-9bf5','074306fb-6eaf')

我想将其转换为带有 IN 语句的 mysql 查询可读的格式,但我一直遇到问题,因为它是一个字符串..

基本上在我的 sql 查询中将其格式化为这样 - 我正在使用内爆但无济于事..任何想法

引导输入(“14183f6c-9bf5”、“074306fb-6eaf”)

$Guids = array('14183f6c-9bf5', '074306fb-6eaf');
$csv = implode('",', $Guids);
Run Code Online (Sandbox Code Playgroud)

php mysql arrays string

3
推荐指数
1
解决办法
2547
查看次数

使用PHP使用IN子句查询MySQL

我想做一个类似于以下的查询:

SELECT f_name, l_name, title from
-> employee_data where title 
-> IN ('Web Designer', 'System Administrator');
Run Code Online (Sandbox Code Playgroud)

搜索条件以数组形式接收,$data = ['Web Designer', 'System Administrator']现在我可以将该数组转换为Web Designer,System Administrator使用:

 $data = implode(',', $data)
Run Code Online (Sandbox Code Playgroud)

是否有一种很好的方法可以将该数组转换为'Web Designer', 'System Administrator'如此,我可以直接将此短语插入到MySQL查询中,如帖子开头所示?

php mysql

1
推荐指数
1
解决办法
3649
查看次数

如何将PHP数组表示为逗号分隔的字符串?

可能重复:
PHP/MYSQL在WHERE子句中使用数组

我有一个ID值为[1,5,2,6,7 ...]的数组,我需要在MySQL item_id IN(1,5,2,6,7 ...)语句中使用它来选择数组中列出的ID的行.如何将$ arrID转换为可插入SQL查询的内容?

EDIT-电话的背景:

if(!IsNullOrEmptyString($_GET["view_playlist"])) {
        session_destroy();
    }
    $id_list = implode(",", $_SESSION("playlist"));
    $sql = 'SELECT t.track_id, t.track_title, t.track_num, al.album_title, g.genre_name, a.artist_name, t.length, t.track_rating '.
    'FROM track t, genre g, artist a, album al '.
    'WHERE t.track_id IN('.$id_list.' AND t.genre = g.genre_id AND t.artist = a.artist_id AND t.album = al.album_id';
Run Code Online (Sandbox Code Playgroud)

php sql

1
推荐指数
1
解决办法
1588
查看次数

如何内爆sql in 子句的值数组?

我有一堆水果。我试图在“水果”列中获取包含这三种水果中的任何一种的所有行

$fruits = array('apple','banana','orange');

$imploded_fruits = implode(',',$fruits); 

$sql = "SELECT * FROM market WHERE fruits IN ('$imploded_fruits');";
Run Code Online (Sandbox Code Playgroud)

这不是返回预期值。格式正确吗?

php mysql

1
推荐指数
1
解决办法
6151
查看次数

MySQL查询使用数组

我正在尝试使用数组查询MySQL数据库,但我遇到了麻烦!

我有一个名为clients的表,我希望能够从'sector'列等于$ sectorlink的所有行中选择'name'.

然后,我想将所有名称放入一个数组,以便我可以执行下一个查询:从另一个表中选择所有行,其"client"列等于第一个查询返回的名称之一.我做错了,因为它返回致命的SQL错误.我对所有变量感到困惑!

$ sectorlink和$ connection是在此代码之外定义的唯一变量

有什么建议?

$query1 = "SELECT name FROM clients WHERE sector = '$sectorlink'";
$clientresult = mysql_query($query1, $connection) or trigger_error("SQL", E_USER_ERROR);

while($row = mysql_fetch_array($clientresult)){

foreach($row AS $key => $value){$temp[] = '"'.$value.'"';}
$thelist = implode(",",$temp);

$query = "SELECT count(*) FROM studies WHERE client IN ($row) ORDER BY (date) desc";
$result = mysql_query($query, $connection) or trigger_error("SQL", E_USER_ERROR);

}
Run Code Online (Sandbox Code Playgroud)

php mysql arrays

0
推荐指数
1
解决办法
1万
查看次数

将数组传递给mysql

我目前有一个值数组(business_id的)

让我们说吧

Array
(
[0] => 12
[1] => 14
[2] => 15
)
Run Code Online (Sandbox Code Playgroud)

使用这些值中的每一个从数据库中获取每个business_id的关联行信息的最佳方法是什么.

可以是一对一的查询是我的问题.显然,你可以做到

$q = "select * from business where business_id = 12";
$rs = mysql_query($q);
Run Code Online (Sandbox Code Playgroud)

php mysql

0
推荐指数
2
解决办法
2万
查看次数

标签 统计

php ×10

mysql ×7

arrays ×2

sql ×2

codeigniter ×1

string ×1