INSERT INTO不向数据库发送数据

时间:2014-03-22 20:23:01

标签: php mysql

这是插入MySQL的代码。 但是,由于某种原因,它不会将数据发送到数据库。

$con=mysqli_connect("localhost","esferinf_fpessoa","mypassword","esferinf_factura");
// Check connection
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

mysqli_query("INSERT INTO Entregas (dia, cliente, toalhetes, higienico, bidons)
VALUES ('$dia', '$cliente','$toalhetes', '$higienico', '$bidons')");

我不明白发生了什么,对我缺少什么?

2 个答案:

答案 0 :(得分:2)

您主要缺少查询中的链接

mysqli_query($con, "INSERT INTO Entregas (dia, cliente, toalhetes, higienico, bidons) VALUES ('$dia', '$cliente','$toalhetes', '$higienico', '$bidons')");

此外,如果这是用户输入,请确保验证并清理变量。

如果你开始使用预备语句

会更好

答案 1 :(得分:0)

@andrew已找到您的问题,但还有其他一些问题:

  • 你没有正确地逃避你的价值观。如果某人在您的输入中插入特殊字符,这将导致错误,并且可能允许黑客从您的服务器窃取数据。
  • 您应该使用PDO,因为这是访问MySQL的现代API。

以下是如何正确插入声明,如果您不想使用PDO,那么您需要了解SQL注入。

$con = new PDO('mysql:host=localhost;dbname=esferinf_factura', 'esferinf_fpessoa', 'fer1pes4');

$statement = $con->prepare('
  insert into Entregas set
  dia = :dia,
  cliente = :cliente,
  toalhetes = :toalhetes,
  higienico = :higienico,
  bidons = :bidons
');

$statement->execute(array(
  'dia' => $dia,
  'cliente' => $cliente,
  'toalhetes' => $toalhetes,
  'higienico' => $higienico,
  'bidons' => $bidons
));