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