我修正了错误:我必须在$ _Post [' businessname']之前加上@符号 正确的语法是: $ value = @ $ _ POST [' businessname']; $ sql =" INSERT INTO checkout(businessname)VALUES(' $ value')";
businessname是表单输入中的名称:
在phpMyAdmin的mysql数据库中我有一个名为database_db的数据库,其中包含一个名为checkout的表,该表有一个字段/名称(在我的mysql中它是" Name"而不是" Field& #34;)名为" businessname"。
在我的checkout_form.php中,它通过以下行连接到我的checkout.php文件:
<form action="checkout_form.php" class="well first-form" action="<?php echo SITE_URL; ? >secured/checkout" id="questionnaireForm" name="sendMsg" novalidate="" method="post">
我有以下代码:
define('DB_NAME', 'database_db');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');
$connection = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$connection){
die('Could not connect: ' . mysqli_error());
}
$db_selected = mysqli_select_db($connection, DB_NAME);
if(!$db_selected){
die('Can\'t use ' .DB_NAME . ' : ' . mysqli_error());
}
echo 'Connected successfully';
$value = $_POST['businessname'];
$sql = "INSERT INTO checkout (businessname) VALUES ('$value')";
if (!mysqli_query($sql)) {
die('Error: ' . mysqli_error());
}
当我在浏览器中运行checkout_form.php时,我得到了第一行: 连接成功 然后我收到以下错误:
Notice: Undefined index: businessname in C:\wamp\www\folder\checkout_form.php on line 22
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\wamp\www\folder\checkout_form.php on line 25
Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\wamp\www\folder\checkout_form.php on line 26
为什么我会收到这些错误?
答案 0 :(得分:0)
要修复错误,我们需要将正确的参数传递给被调用的函数。
使用过程版本时, mysqli_query
需要两个参数,而mysqli_error
需要一个
尝试:
if (!mysqli_query($connection, $sql)) {
die('Error: ' . mysqli_error($connection));
您的SQL查询也容易受到SQL注入......
答案 1 :(得分:0)
此代码存在一些问题: