Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
如何在laravel 5中调用postgresql存储过程_Postgresql_Laravel 5 - Fatal编程技术网

如何在laravel 5中调用postgresql存储过程

如何在laravel 5中调用postgresql存储过程,postgresql,laravel-5,Postgresql,Laravel 5,我测试了两种类型 (一) (二) 但两种方法都有相同的错误 Connection.php第647行中的QueryException:SQLSTATE[42601]:语法 错误:7错误:在“call”行或其附近出现语法错误1:call abc_cmw(“$ipaddress”、“$cname”、“$re…^(SQL: 呼叫 abc\u cmw(“$ipaddress”、“$cname”、“$recvd\u date”、“$language”、“$address1”、“$address2”、“$ad

我测试了两种类型 (一)

(二)

但两种方法都有相同的错误

Connection.php第647行中的QueryException:SQLSTATE[42601]:语法 错误:7错误:在“call”行或其附近出现语法错误1:call abc_cmw(“$ipaddress”、“$cname”、“$re…^(SQL: 呼叫 abc\u cmw(“$ipaddress”、“$cname”、“$recvd\u date”、“$language”、“$address1”、“$address2”、“$address3”、“$pincode”、“$mobileno”、“$amobileno”、“$email\u address”、“$IDDRowDetail”、“$Description”、“$补救措施”、“$gretype”、“$fcount”、“$content1”、“$content2”、“$district\u问题”、“$city\u问题”, “$block_problem”、“$village_problem”、“$username”、“$sugg_demand”、“$dept_name”、“$indivu grp”、“$ac_problem”))


在PostgreSQL中,使用
SELECT
子句调用函数,例如:
SELECT func()

应避免直接插入SQL参数,因为可能会进行SQL注入。请改用绑定:

DB::statement('SELECT abc_cmw(?, ?, ?)', [$param1, $param2, $param3]);


在PostgreSQL中,使用
SELECT
子句调用函数,例如:
SELECT func()

应避免直接插入SQL参数,因为可能会进行SQL注入。请改用绑定:

DB::statement('SELECT abc_cmw(?, ?, ?)', [$param1, $param2, $param3]);


我想知道在您的解决方案中,问号替换为列名,或者我需要为每一列插入问号?您可以使用命名绑定(第二个示例)或数组绑定(第一个示例)。如果您更喜欢数组绑定,请为每列插入问号。顺便说一句,传递给函数的变量称为参数或参数,而不是列。这给了我错误SQLSTATE[22P02]:无效的文本表示法:7错误:格式错误的数组文字:“”详细信息:数组值必须以“{”或维度信息开头。(SQL:选择abc_cmw(,cdssfsdf,2017-10-04,DFSFSD,,,,,8888888,,abc@gmail.com,dfsfsfs,,N,1,,,58001,,,G,ADR,G,03))您的函数是否接受数组作为参数之一?如果接受,那么我有个坏消息。Laravel不支持将php数组作为Postgres函数的参数传递。唯一的解决方法是手动执行。Google“php将数组传递给postgres函数“我想知道在您的解决方案中问号替换为列名,或者我需要为每个列插入问号?您可以使用命名绑定(第二个示例)或数组绑定(第一个示例)。如果您更喜欢数组绑定,请为每列插入问号。顺便说一句,传递给函数的变量称为参数或参数,而不是列。这给了我错误SQLSTATE[22P02]:无效的文本表示法:7错误:格式错误的数组文字:“”详细信息:数组值必须以“{”或维度信息开头。(SQL:选择abc_cmw(,cdssfsdf,2017-10-04,DFSFSD,,,,,8888888,,abc@gmail.com,dfsfsfs,,N,1,,,58001,,,G,ADR,G,03))您的函数是否接受数组作为参数之一?如果接受,那么我有个坏消息。Laravel不支持将php数组作为Postgres函数的参数传递。唯一的解决方法是手动执行。Google“php将数组传递到postgres函数“
DB::statement('SELECT abc_cmw(?, ?, ?)', [$param1, $param2, $param3]);
DB::statement('SELECT abc_cmw(:param1, :param2, :param3)', [
  'param1' => $param1, 
  'param2' => $param2, 
  'param3' => $param3
]);