[英]The problem with the query
我找不到为什么这个查询不起作用的答案:
$query = pg_query($connect, sprintf("INSERT INTO table (uid, urzid, time_start, time_stop2, date_start, date_stop, cycle) VALUES ($uid, $pom, '$time1', '$time2', '$data1', '$data2', $cykl)"));
我收到警告:PG_QUERY() [FUNCTION.PG-QUERY]: QUERY FAILED: ERROR: SYNTAX ERROR AT OR NEAR "," AT CHARACTER 96
在我看来,该错误与。'' $ time1, $ Time2 和 $ date1, $ date2 符合日期和时间的格式。
我们无法猜测您的变量中有什么内容。 请运行此代码并粘贴结果:
echo "INSERT INTO table (uid, urzid, time_start, time_stop2, date_start, date_stop, cycle) VALUES ($uid, $pom, '$time1', '$time2', '$data1', '$data2', $cykl)";
你会发现语法错误。
避免此类错误的最佳方法(更重要的是,防止SQL 注入)是使用诸如PDO 之类的库并为变量使用占位符。
更新:现在我们可以看到你的变量是什么样的,试试这个:
$query = pg_query($connect, "INSERT INTO table (uid, urzid, time_start, time_stop2, date_start, date_stop, cycle) VALUES ('$uid', '$pom', '$time1', '$time2', '$data1', '$data2', '$cykl')");
但是,不要忘记查看上述评论以获得最佳实践。
尝试反向引用,“ => ',” => '... 总是为我节省很多痛苦。
您必须添加额外的参数:
$world = "World";
$foo = sprintf("Hello %s", $world);
但是,由于您使用的是双引号字符串,因此您不需要 sprintf:
$foo = "Hello $world";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.