我有这样的查询:(在Postgresql 8.4,PHP-fpm 5.3.10(fpm-fcgi))
select * from users where now() - interval '2 minutes' < seenlast ORDER BY seenlast;
Run Code Online (Sandbox Code Playgroud)
我想使用PHP/PDO查询,所以:
$mymin=5; //this is a variable can be changed by $_GET
$query = $db_conn->prepare("select * from users where now() - interval ':myminute minutes' < seenlast ORDER BY seenlast");
$query->bindParm(":myminute",$mymin)
$query->execute;
Run Code Online (Sandbox Code Playgroud)
这不起作用,我找不到以合适的方式传递分钟($ mymin)的方法.如果我硬编码时间工作,那么代码的其他部分必须是正确的.
我也尝试过:
$temp=$mymin." minutes";
$query = $db_conn->prepare("select * from users where now() - interval :myminute < seenlast ORDER BY seenlast");
$query->bindParm(":myminute",$temp)
Run Code Online (Sandbox Code Playgroud)
可能的重复:
将 MySQL SET 数据类型转换为 Postgres
我有 postgresql 8.4。
我正在尝试建立一个查询但没有成功。如果相关行中不存在元素,我想将它们插入到数组中。
表“测试”:
+------------------+------------------+
| id | varchar(20) |
| timestp | timestamp |
| place | varchar(20) |
| myarray[][] | varchar[14][254] |
+------------------+------------------+
+---------+---------------------+-----------+----------------+
| xyz | 2010-01-01 10:10:10 | nowhere | "{abc,qwert}" |
+---------+---------------------+-----------+----------------+
Run Code Online (Sandbox Code Playgroud)
所以我想将“{fgh,gfdsa}”添加到 myarray WHERE (id='xyz' AND timestp="2010-01-01 10:10:10" AND place='nowhere')如果它还没有在数组
我尝试过这样的事情>
UPDATE test
SET myarray = array_append(wascon2,'{fgh,gfdsa}')
WHERE (id='xyz' AND timestp="2010-01-01 10:10:10" AND place='nowhere'
AND NOT EXISTS 1 FROM test WHERE (myarray='{fgh,gfdsa}')));
Run Code Online (Sandbox Code Playgroud)
这不起作用,每次我调用它时它都会附加数组。
+---+---------------------------+-------------------------------------------+
|xyz|2010-01-01 …Run Code Online (Sandbox Code Playgroud)