0
我必須在我的應用程序中創建一個Web服務,以使用PHP從MySQL數據庫中提取數據。我不知道我想做什麼可以工作,或者不是,因爲我是PHP新手。這裏是代碼:PHP MySQL綁定聲明情況
$queryString = "SELECT uniqueID, address FROM main WHERE (state = ?) AND (propType IN (?)";
$stmt = mysqli_prepare($this->connection, $queryString);
mysqli_stmt_bind_param($stmt, 'ss', $itemst, $itempt);
mysqli_stmt_execute($stmt);
我的問題與我的數據庫的propType列的綁定語句有關。在我的應用程序中,有8種不同的屬性類型,用戶可以點擊複選框進行搜索。我想要做的是將字符串拼接成一個由上面的$ itempt表示的值,並將這個單個字符串綁定到SQL語句,但我不知道我是否可以這樣做?
如果我不能,我必須做類似如下:
$queryString = "SELECT uniqueID, address FROM main WHERE (state = ?) AND (propType IN (?,?,?,?,?,?,?,?)";
這可以在綁定表達式變得複雜起來,因爲我將不得不測試選擇哪些物業類型,並拿出各種不同的查詢/綁定表達式,這將是很費力的。
所以我的問題是,用「IN」子句,我可以將所有的字符串值拼接成一個逗號分隔的字符串,然後將這個單一值綁定到我的查詢,或者我必須通過一個爲每個可能的值分別設置變量並分別綁定它們?
感謝您的任何見解!
我是新來的PHP,所以不得不做一個小小的研究你的反應,但這種解決方案看起來輝煌的我。如果我理解正確,我必須將一組搜索參數傳遞給PHP,這些參數將映射到匹配搜索參數數量的一串問號,然後循環遍歷它們並單獨綁定每個值。它是否正確?這是否也適用於字符串數組而不是整數? – sax
絕對是。你也可以使用字符串。 – Yolo
Yolo,雖然你的解決方案似乎是一個有效的解決方案,但它看起來並不像mysqli將允許你按照你的建議綁定多個語句的參數。我收到錯誤「mysqli_stmt_bind_param():變量數量與預準備語句中的參數數量不匹配」。你是否肯定你可以按照你所建議的方式在多個陳述中綁定參數? – sax