2016-02-19 39 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');";