2014-10-01 162 views
-1

我有一個數據庫運行在我的服務器與phpmyadmin,但我無法連接它。這裏是一個例子:無法連接到數據庫在php

$user_name = "xxxxx"; 
$password = "xxxxx"; 
$database = "xxxxx"; 
$host = "db.xxxx.nl"; 

$db_handle = mysql_connect($host, $user_name, $password); 
$db_found = mysql_select_db($database); 

但這似乎並不奏效。如果我嘗試在表格中插入一些值,它仍然是空的。

$sql = "INSERT INTO tbl_forum 
     ( 
        title, 
        name, 
        content, 
        lastname, 
        post_image 
     ) 
     VALUES 
     ( 
        '{$_POST['contactsubject']}', 
        '{$_POST['contactname']}', 
        '{$_POST['contactmessage']}', 
        '{$_POST['contactlastname']}', 
        '{$_FILES["contactBrowse"]["name"]}' 
     )"; 

我做錯了什麼?

+0

把'或者死(mysql_error());'在你的查詢結束。它告訴你什麼? – 2014-10-01 10:42:24

+1

此外,如果你有最新的PHP,然後使用mysqli_ *。因爲mysql_ *現在已被棄用。 – 2014-10-01 10:43:55

+1

你是否真的從'$ sql'字符串運行查詢? 'mysql_'也是過時的。使用更現代化的教程搜索已準備好的語句 – andrew 2014-10-01 10:44:43

回答

-1

我認爲最後一個值'{$_FILES["contactBrowse"]["name"]}'有一些問題。試試這個,準備好之後(echo $sql;)通過你自己進行調試。

$file_name = $_FILES["contactBrowse"]["name"]; 
$sql = "INSERT INTO tbl_forum 
    ( 
       title, 
       name, 
       content, 
       lastname, 
       post_image 
    ) 
    VALUES 
    ( 
       '{$_POST['contactsubject']}', 
       '{$_POST['contactname']}', 
       '{$_POST['contactmessage']}', 
       '{$_POST['contactlastname']}', 
       '{$file_name}' 
    )"; 
0

我要完全重寫你的代碼。由於您對PHP中的數據庫顯然不熟悉,因此完全沒有理由不使用新的mysqli API。

您的連接應該看起來像這樣;

$mysqli = new mysqli($host,$user_name,$password,$database); 
if ($mysqli->connect_errno) echo "Failed to connect to MySQL: " . $mysqli->connect_error; 

這將創建一個名爲$mysqli一個新的數據庫對象(或者你可以調用它,你喜歡什麼,比如$db)。

然後,您可以準備好您的SQL語句並執行它。在下面的代碼中,我們有5個參數在SQL中表示爲?,然後我們將變量綁定到這5個參數。 bind_param中的第一個參數告訴API 5個參數是5個字符串(因此s x5)。對於整數,使用i;

if($query = $mysqli->prepare("INSERT INTO tbl_forum (title,name,content,lastname,post_image) VALUES (?,?,?,?,?)")) { 
    $query->bind_param('sssss',$_POST['contactsubject'],$_POST['contactname'],$_POST['contactmessage'],$_POST['contactlastname'],$_FILES["contactBrowse"]["name"]); 
    $query->execute(); 
} 
else { 
    echo "Could not prepare SQL: " . $mysqli->error; 
} 

假設您的所有連接信息都是正確的,這將根據需要將您的信息插入到數據庫中。

希望這會有所幫助。