日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

php mysql模糊查询数组,php – 使用数组的MySQL查询

發布時間:2025/4/16 数据库 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php mysql模糊查询数组,php – 使用数组的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);

}

解決方法:

第二個查詢應該使用$thelist而不是$row,它應該在while循環之外.處理單行時不需要foreach循環.您可以使用簡單的$row [0]訪問$row中的名稱.像這樣(未經測試):

$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)){

$temp[] = '"'.$row[0].'"';

}

$thelist = implode(",",$temp);

$query = "SELECT count(*) FROM studies WHERE client IN ($thelist) ORDER BY (date) desc";

$result = mysql_query($query, $connection) or trigger_error("SQL", E_USER_ERROR);

注意:請注意您的代碼非常容易受到SQL injection attacks的攻擊.它適用于測試或內部開發,但如果此代碼將運行Fort Knox網站,您將需要修復它.只是一個FYI.

標簽:php,arrays,mysql

來源: https://codeday.me/bug/20190923/1814385.html

總結

以上是生活随笔為你收集整理的php mysql模糊查询数组,php – 使用数组的MySQL查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。