Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中如何在insert中执行select语句_Php_Postgresql_Heroku_Insert - Fatal编程技术网

在php中如何在insert中执行select语句

在php中如何在insert中执行select语句,php,postgresql,heroku,insert,Php,Postgresql,Heroku,Insert,我在PostgreSQL中使用PHP的web应用程序。您看到的第一个查询工作正常。第二个查询不起作用,并导致页面上出现一些小的视觉问题,例如无法加载图像 如果我将SELECT语句替换为一个数字,如1,页面将正确加载,就像正常加载一样。图像也将正确加载 我确实测试了$userID和$newJarName变量,发现它们是正确的,但作为一种保护措施,我还用静态数字和名称替换了它们,并发现仍然存在问题页面 我尝试将select语句放入它自己的变量中,将整个查询放入它自己的变量中,但这两种想法都不起作用

我在PostgreSQL中使用PHP的web应用程序。您看到的第一个查询工作正常。第二个查询不起作用,并导致页面上出现一些小的视觉问题,例如无法加载图像

如果我将SELECT语句替换为一个数字,如1,页面将正确加载,就像正常加载一样。图像也将正确加载

我确实测试了$userID和$newJarName变量,发现它们是正确的,但作为一种保护措施,我还用静态数字和名称替换了它们,并发现仍然存在问题页面

我尝试将select语句放入它自己的变量中,将整个查询放入它自己的变量中,但这两种想法都不起作用

我想我的语句中的语法肯定有问题,但我说不出来。我确实访问了这个页面,但运气不好


如果要使用参数,则需要使用准备好的语句。 这两个查询都容易受到sql注入的影响

有了PDO,它看起来就像这样:

$sth=$dbh->prepare' 插入用户\u jars用户\u id,jar\u id 值?,从jar中选择jar\U id,其中jar\U所有者\U id=?和jar_name=? '; $sth->executearray$userID,$userID,$newJarName;
我不知道你的$db是什么类型的,所以我只是猜测…

谢谢你指出这一点,我完全忘记了。但我想这并没有解决你的问题。。。您可能希望添加有关查询的更多信息,但这些信息对您不起作用。您从postgress获得的错误消息会有所帮助。也可能是所使用的两个表的模式。今天晚些时候我将有机会处理它,希望一个准备好的语句能够修复它。如果没有,我会更新这些额外的细节。
function insertNewJar($newJarName, $userID, $db){
            $db->query(
                "INSERT into jars (jar_owner_id, jar_total, jar_active, jar_name)
                VALUES (
                        '$userID',
                        0,
                        true,
                        '$newJarName')"
                    );

                //linkJar($newJarName, $userID, $db);
                //$select = "(SELECT jar_id FROM jars WHERE jar_owner_id = '$userID' AND jar_name = '$newJarName')";



                $db->query(
                    "INSERT INTO users_jars (user_id, jar_id)
                    VALUES(
                        '$userID',
                        (SELECT jar_id FROM jars WHERE jar_owner_id = $userID AND jar_name = '$newJarName')
                    )"
                );  


        }