php mysql模糊查询数组,php – 使用数组的MySQL查询
我正在嘗試使用數(shù)組查詢MySQL數(shù)據(jù)庫,但我遇到了麻煩!
我有一個名為clients的表,我希望能夠從’sector’列等于$sectorlink的所有行中選擇’name’.
然后,我想將所有名稱放入一個數(shù)組,以便我可以執(zhí)行下一個查詢:從另一個表中選擇所有行,其“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循環(huán)之外.處理單行時不需要foreach循環(huán).您可以使用簡單的$row [0]訪問$row中的名稱.像這樣(未經(jīng)測試):
$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的攻擊.它適用于測試或內(nèi)部開發(fā),但如果此代碼將運行Fort Knox網(wǎng)站,您將需要修復它.只是一個FYI.
標簽:php,arrays,mysql
來源: https://codeday.me/bug/20190923/1814385.html
總結
以上是生活随笔為你收集整理的php mysql模糊查询数组,php – 使用数组的MySQL查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 日历重复_PHP 生成日历
- 下一篇: php 企业号文本消息推送,Python