2016-02-19 41 views
0

我有几个从表单插入值到MySQLi数据库的页面。每个插入页面都运行良好,除了一个。我在两台服务器上测试了MariaDB和Microsoft Azure“Web app + MySQL”,非工作插入页面在MariaDB上工作,但不在Azure上,而所有其他插入页面在Azure上工作。我想知道为什么一个插入页面在Azure上不起作用,因为它在本地和MariaDB上测试时工作正常?可能它是Azure的可兼容性问题,还是我必须添加一些内容到我的代码中,以将值插入到MySQLi数据库中?MySQLi或Microsoft Azure的PHP问题

这是从非工作页(上天青)其中,I填补值:该插入值

<form action="insertcompanies.php" method="POST" enctype="multipart/form-data" name="insertcompanies" onsubmit="return validateForm()"> 
 
    <br> 
 
    <b>Project name</b> <br> 
 
    <input type="text" name="company_name" id="company_name"> 
 
    <b>Add picture:</b><br> 
 
    <input type="file" name="image" id="image"> 
 
    <input type="submit" name="submit" value="Add" /> 
 
</form>

这是从非工作页(上天青)到我的数据库中:

$company_name = $_POST['company_name']; 
 
$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','$image','$image_type');"; 
 

 
$r = mysqli_query($mysqli,$q); 
 
if($r) 
 
{ echo "<h1>Project done!</h1>";}

当我按下第一页上的提交按钮来通过第二页插入值时,我没有收到消息“Project done!”从插入值到数据库的页面。我看到的只是一个空白页面。

我不确定我会告诉你哪些代码,所以如果你需要看到任何其他代码告诉我!

+1

难道你有错误报告吗?即。 '的error_reporting(-1); ini_set('display_errors',1);'在'insertcompanies.php'的顶部?空白页常常是代码中某处出现语法或其他错误的标志。 – Sean

+1

@肖恩是的,但我没有得到任何消息,它仍然是木板。我也测试过写error_reporting(E_ALL); – Max

回答

0

它应该是错误的在你的sql stmt。所以你有一个没有任何PHP错误的空白页面。

您可以通过修改mysqli的代码添加错误输出的故障排除:

if($r){ 
     echo "<h1>Project done!</h1>"; 
    }else{ 
     echo "Errno: " . $mysqli->errno . "\n"; 
     echo "Error: " . $mysqli->error . "\n"; 
    } 

正如我在MySQL在Azure上创建一个表,该计划是:

CREATE TABLE `project` (
    `Id` int(11) NOT NULL AUTO_INCREMENT, 
    `company_name` varchar(255) DEFAULT NULL, 
    `image` longblob, 
    `image_type` varchar(255) DEFAULT NULL, 
    PRIMARY KEY (`Id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

尝试重现您的问题。

如果我使用SQL语句中的格式列表:

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

我不得不例如定义值特定的id

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

或者我要修改到:

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