代码不会插入数据库

时间:2016-02-19 21:12:40

标签: php mysql sql mysqli

我有以下代码应该从以前的页面收集填充的值并将它们插入MySQLi数据库中。这不起作用,我只得到一个空白页面,没有任何消息。我无法弄清楚我做错了什么。

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);

if(mysqli_connect_errno())
{
    echo mysqli_connect_error();
}

$company_name = $_POST['company_name'];
$description = $_POST['description'];
$welcome_text = $_POST['welcome_text'];
$thanks_message = $_POST['thanks_message'];
$image = addslashes (file_get_contents($_FILES['image']['tmp_name']));
$logo = getimagesize($_FILES['image']['tmp_name']);

$image_type = $logo['mime'];

$q = "INSERT INTO project VALUES('','$company_name','$description','$image','$image_type','$welcome_text','$thanks_message')";

$r = mysqli_query($mysqli,$q);
if($r)
{
    echo "<h1>Projektet är skapat!</h1><br>
      Tryck på knappen nedan för att ta dig till Dashboard.<br><br>
      <a href='dashboardadmin.php'><button id='projectbutton'>Dashboard</button></a>";
}
else
{
    echo mysqli_errno($mysqli) . ": " . mysqli_error($mysqli) . "\n";
}
?>

2 个答案:

答案 0 :(得分:3)

INSERT的正确语法是:

INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);

请先尝试在值前输入列名。同时检查$_POST值,$_FILES['image']是否可用,并确认您的mysqli连接。

<强>编辑:

第一个值(空值)是您的主键吗?如果是这样,您可以在代码中省略该位并再试一次吗? (假设pid是整数并自动递增值。)

INSERT INTO project (project_name, description, image, image_type, welcome_text, thanks_message) VALUES('$company_name','$description','$image','$image_type','$welcome_text',‌​'$thanks_message')

根据您的评论,我不认为这将是Azure特定问题。

你能看到日志中的任何错误等吗?还可以在运行之前尝试回显查询,并检查是否直接在phpmyadmin等上运行它以查看它是否有效。

请尝试使用echo mysqli_errno($mysqli) . ": " . mysqli_error($mysqli) . "\n";if($r){..} else { //here }看看你是否收到错误。

最新更新:

$q = "INSERT INTO project (project_name, description, image, image_type, welcome_text, thanks_message) VALUES('".$company_name."','".$description."','".$image."','".$image_type."','".$welcome_text."','".$thanks_message."')";

答案 1 :(得分:2)

试试这个,因为您的主键值是自动递增的。

$q = "INSERT INTO project VALUES('$company_name','$description','$image','$image_type','$welcome_text','$thanks_message')";