我的服务器上运行了一个使用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"]}'
)";
我做错了吗?
答案 0 :(得分: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;
}
假设您的所有连接信息都是正确的,这将根据需要将您的信息插入数据库。
希望这有帮助。
答案 1 :(得分:-1)
我认为最后一个值'{$_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}'
)";