Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';在php中不能连接到数据库_Php_Sql_Database - Fatal编程技术网

Can';在php中不能连接到数据库

Can';在php中不能连接到数据库,php,sql,database,Php,Sql,Database,我有一个数据库运行在我的服务器与phpmyadmin,但我不能连接它。以下是一个例子: $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); 但这似乎不起作用。如果我尝试向表中插入一

我有一个数据库运行在我的服务器与phpmyadmin,但我不能连接它。以下是一个例子:

$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"]}' 
        )";

我做错什么了吗?

我认为最后一个值
{$\u FILES[“contactBrowse”][“name”]}
有问题。尝试此操作,并在准备(
echo$sql;
)以自行调试后获取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}' 
    )";

我要完全重写你的代码。由于您对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;
}
假设您的所有连接信息都正确,这将根据需要将您的信息插入数据库


希望这有帮助。

put
或die(mysql_error())在查询结束时。它告诉了你什么?此外,如果你有最新的PHP,那么就使用mysqli。因为mysql现在不推荐使用。您是否确实从
$sql
字符串运行了查询?mysql也已经过时了。使用更现代的教程搜索准备好的语句Danger:您正在使用并且应该使用。您还容易受到现代API的影响,因为它会使您更容易使用。您的示例中有一个语法错误。在数据库中输入的最后一个值上,应该有
$\u文件['contactBrowse']['name']
,而应该有
$\u文件['contactBrowse'][“name”]