我的INSERT语句出了什么问题? (PHP)

时间:2019-01-24 12:38:08

标签: php sql

我正在尝试执行此INSERT语句,但未执行。我回显了$ query字符串,看起来还可以。尝试使用mysqli_query($connect, $query)执行时,什么也没有发生,只是一个空白屏幕。

$query = "INSERT INTO spservices('service_no', 'service_email', 'service_type', 'service_exit_node', 'service_billing', 'service_next_due', 'service_download', 'service_password') 
VALUES('$serviceNo','$mail', '$serviceType', '$enode', '$serviceBilling','$nextDue','Pending until payment confirmed','$servicePass')";

if (mysqli_query($connect, $query)) {
    //MY CODE SENDS AN EMAIL HERE
}

1 个答案:

答案 0 :(得分:0)

在SQL中,带单引号的字符串被视为用户输入,而不是表/字段名称。

因此,更正后的SQL:

$query       = "INSERT INTO spservices(service_no, service_email, service_type, service_exit_node, service_billing, service_next_due, service_download, service_password) 
VALUES('$serviceNo','$mail', '$serviceType', '$enode', '$serviceBilling','$nextDue','Pending until payment confirmed','$servicePass')";

您可以使用反引号运算符

来代替字段名中的单引号

(`)围绕列/字段名称。

当您的字段名称恰好是保留的SQL字时,这很有用。

例如。

SELECT `select` FROM users