簡體   English   中英

使用簡單的mySQL查詢執行PHP代碼時遇到問題

[英]having problems to execute a PHP code with simple mySQL query

我正在嘗試使用WHERE子句執行查詢,但看來我檢索到的ID可能需要從數組轉換為其他內容。 我是PHP的新手,所以我有點掙扎:

...some previous query here
$sharepoint_id = $data[0];
//returns Array([ID] => a5f415a7-3d4f-11e5-b52f-b82a72d52c35)   

qry = mysql_query("SELECT HostName FROM MSSWireList WHERE id=".$sharepoint_id);     
    $data = array();
    while($rows = mysql_fetch_array($qry))
    {
        $data[] = array(
                    "ID"          => $rows['ID'],
                    "Record"      => $rows['Record'],                                
                    "HostName"    => $rows['HostName']
                    );
    }
    return json_encode($data);  

還嘗試了$ sharepoint_id = $ data [0]-> ID; 謝謝

“返回數組([ID] => a5f415a7-3d4f-11e5-b52f-b82a72d52c35)”

那是一個字符串,而不是整數。 您的WHERE子句中的變量需要加引號。

WHERE id='".$sharepoint_id."' ");

檢查錯誤將表明語法錯誤。

添加or die(mysql_error())mysql_query()


您當前的代碼可以進行SQL注入 mysqli_*與預處理語句一起使用 ,或將PDO預處理語句一起使用


編輯:

您僅從查詢中選擇了HostName列,而沒有選擇其他兩個IDRecord

但是,在循環中,行名區分大小寫。

因此,如果您的行的大小寫是id而不是ID ,那么這在循環中就很重要。

  • $rows['ID']$rows['id']是兩種不同的動物。

邊注:

從我已經問過的評論中拉出來:

qry = mysql_query如果您的真實代碼,則缺少qry$

如果是這樣,錯誤報告將向您拋出未定義的恆定qry通知。

我不會帶您去使用舊的mysql驅動程序來代替mysqli或PDO,或者不使用准備好的語句-我將把它留給其他人去做-但是

"...WHERE id = '" . $sharepoint_id['ID'] . "'"

應該做的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM