php - 基于数组的查询php

标签 php mysql

我不想一次在 mysql 数据库中搜索一个变量,而是想搜索多个变量,并将其放入初始查询字符串中

所以而不是

$query="SELECT * FROM table1 WHERE state = 'CA' OR state = 'CO' OR state = 'TX'";

我想要

$states = ("CA,CO,TX");
$query="SELECT * FROM table1 WHERE state = $states";

我已经尝试过

<?
include("connect.php"); // file to connect to db
$states = array(CA,TX);
$states_str = implode(",", $states);


$query="SELECT * FROM table1 WHERE state IN ($states_str)";

$result=mysql_query ($query);
while($row = mysql_fetch_array($result)) {
echo $row['state'];
}

?>

但我收到此错误消息

 Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in  ... on line 11

这是第 11 行

while($row = mysql_fetch_array($result)) {

但是,如果我使用此代码,我会得到一个结果,只是为了表明当我切换回旧的常规查询时它可以工作

<?
include("connect.php"); // file to connect to db
$states = array(CA,TX);
$states_str = implode(",", $states);


$query="SELECT * FROM table1 WHERE state = 'CA'";

$result=mysql_query ($query);
while($row = mysql_fetch_array($result)) {
echo $row['state'];
}

?>

但是我绕过了 implode() 的东西,我在其他地方找到了它,但它对我不起作用

最佳答案

显然,查询失败,因为字符串值没有加引号。

尝试:

$states = array('CA','TX');
$states_str = implode("','", $states);
$query="SELECT * FROM table1 WHERE state IN ('$states_str')";

关于php - 基于数组的查询php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19842351/

相关文章:

mysql - 在同一张表上错误使用连接

javascript - 有没有办法获取 Icecast 流的广播状态?

mysql - PHPMyAdmin 中的 mysql 查询中出现意外标记

php - NOW() 没有在 DB : off by 2 hours 中保存准确时间

php - 在 AJAX 加载的 DIV 中运行 javascript

php - Drupal 6 将数组存储在 mysql 表中,因为 varchar 是错误的,提供的参数无效

php - foreach 中的两个条件

php - 从数据库中获取表上方的名称列

javascript - 如何在html中显示通过ajax传递的数组

php - 使用ajax发布表单数据?