[英]How to put two dimensional array into mysql_query in php
問題很簡單。
我有什么,有什么問題?
我確實有二維數組$someArray[][]
。 我可以在第一個括號中放入“主題”或“日期”。 第二個從1到4(只是示例- $someArray['date'][0]
)
現在,當我嘗試使用mysql_query()
從數據庫中獲取一些數據時,我遇到了一些問題。 我試圖在查詢的WHERE部分中使用此二維數組。
示例什么有效,什么無效
$result = mysql_query("SELECT some from table where date='$someArray[date][0]' AND subject='$someArray[subject][0]') or die(mysql_error());
當我使用它時,它什么也沒回報。 但是當我第一次將這些值賦給新變量時:
$variable1 = $someArray['date'][0];
$variable2 = $someArray['subject'][0];
然后在查詢中使用它們
`$result = mysql_query("SELECT some from table where date='$variable1' AND subject='$variable2') or die(mysql_error());
它像一種魅力。
題
我的第一個查詢出了什么問題,我將這些數組寫錯了嗎? 我沒有錯誤。
試圖將單撇號放在mysql查詢的[]括號內,但隨后卻出現錯誤。 如果我在查詢中使用像$someotherArray[somedata]
這樣的數組,也可以在沒有它們的情況下工作。
查詢中的語法缺少右引號。 然后連接該字符串,而不是將其添加到其中。 字符串解析器不喜歡多維數組。
解:
$result = mysql_query("SELECT some from table where date='".$someArray[date][0]."' AND subject='".$someArray[subject][0]."'") or die(mysql_error());
和@barmar一樣,括號也可以
另外,請確保對數據進行轉義以確保防止SQL注入!
數組插值僅適用於單級下標。 對於多維數組,您需要使用{...}
包裝器:
$result = mysql_query("SELECT some from table where date='{$someArray['date'][0]}' AND subject='{$someArray['subject'][0]}') or die(mysql_error());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.