2014-10-01 164 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; 
} 

假设您的所有连接信息都是正确的,这将根据需要将您的信息插入到数据库中。

希望这会有所帮助。