PHP '参数编号无效:参数未定义于'

问题描述 投票:0回答:2

我是编程新手,目前正在学习 PHP 和数据库,我收到错误“参数编号无效:参数未在(第 28 行)中定义”,请告诉我问题是什么?

p.s 而且我也使用谷歌翻译,所以不要对我糟糕的英语感到惊讶。

$post = "Work";
$full_name = "Jack";
$email = "@gmail";
$work_number = "3241";
$number = "8(903)432-19-11";

$parameters = \[
\["p"=\>$post\],
\["f_n"=\>$full_name\],
\["e"=\>$email\],
\["w_n"=\>$work_number\],
\["n"=\>$number\]
\];

$sql = "INSERT contact_work ($post, $full_name, $email , $work_number , $number) VALUE(:p , :f_n , :e , :w_n , :n)";
$query=$connection-\>prepare($sql);

$query-\>execute($parameters);

我尝试查看遇到此问题的人的各种指南和答案,但找不到解决方案。

php
2个回答
0
投票

您的代码中存在多个问题:

  1. SQL INSERT 语句语法不正确。 INSERT 语句的正确语法应该是

    插入表名(列1,列2,...)值(值1,值2,...)。

  2. $parameters 数组键名称应与占位符相同(:p、:f_n、:e、:w_n、:n)。

    $参数 = [ ':p' => $post, ':f_n' => $full_name, ':e' => $电子邮件, ':w_n' => $work_number, ':n' => $数字 ];

尝试使用以下代码:

$post = "Work";
$full_name = "Jack";
$email = "@gmail";
$work_number = "3241";
$number = "8(903)432-19-11";

$sql = "INSERT INTO contact_work (post, full_name, email, work_number, number) VALUES (:p, :f_n, :e, :w_n, :n)";
$query = $connection->prepare($sql);

$parameters = [
    ':p' => $post,
    ':f_n' => $full_name,
    ':e' => $email,
    ':w_n' => $work_number,
    ':n' => $number
];

$query->execute($parameters);

0
投票
$post = "Work";
$full_name = "Jack";
$email = "@gmail";
$work_number = "3241";
$number = "8(903)432-19-11";
//associative array with key values
$parameters = [
    ':p' => $post,
    ':f_n' => $full_name,
    ':e' => $email,
    ':w_n' => $work_number,
    ':n' => $number
];
//make sure u replace with correct column names
$sql = "INSERT INTO contact_work (post, full_name, email, work_number, number) VALUES (:p, :f_n, :e, :w_n, :n)";
$query = $connection->prepare($sql);
$query->execute($parameters);
© www.soinside.com 2019 - 2024. All rights reserved.