无法连接到数据库在php
问题描述:
我有一个数据库运行在我的服务器与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"]}'
)";
我做错了什么?
答
我认为最后一个值'{$_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}'
)";
答
我要完全重写你的代码。由于您对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;
}
假设您的所有连接信息都是正确的,这将根据需要将您的信息插入到数据库中。
希望这会有所帮助。
把'或者死(mysql_error());'在你的查询结束。它告诉你什么? – 2014-10-01 10:42:24
此外,如果你有最新的PHP,然后使用mysqli_ *。因为mysql_ *现在已被弃用。 – 2014-10-01 10:43:55
你是否真的从'$ sql'字符串运行查询? 'mysql_'也是过时的。使用更现代化的教程搜索已准备好的语句 – andrew 2014-10-01 10:44:43