我对PHP有一个非常奇怪的问题,我开始学习..我在MySQL数据库中创建了一些包含一些数据的表,现在我想在网页中显示它们。
这是我遇到此问题的来源:
<?php
// Here I open connection
$con = mysql_connect("localhost","root","aaaaaa");
// set the mysql database
$db = mysql_select_db("infs", $con);
// I check the connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else {
// It always goes here
echo "Connected to database!";
}
// I am testing very simple SQL query.. there should be no problem
$result = mysql_query("SELECT * FROM cathegories", $con, $db);
if (!$result) {
// but it always dies
$message = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $query;
die($message);
}
mysql_close($con);
?>
有什么问题?
提前致谢!
答案 0 :(得分:1)
// Here I open connection
$con = mysql_connect("localhost","root","aaaaaa");
// set the mysql database
$db = mysql_select_db("infs", $connection);
更改为
// Here I open connection
$con = mysql_connect("localhost","root","aaaaaa");
// set the mysql database
$db = mysql_select_db("infs", $con);
答案 1 :(得分:1)
你正在混合mysql和mysqli。 尝试类似:
<?php
$con= new mysqli("localhost","user","passwd","database");
if ($con->connect_errno){
echo "could not connect";
}
$select = "SELECT * FROM tablename";
if($result = $con->query($select)){
while($row = $result->fetch_object()){
echo $row->rowname."<br>";
}
}
else { echo 'no result'; }
$con->close();
?>
答案 2 :(得分:0)
mysql_query只接受两个参数 - 实际的SQL然后是链接标识符(我假设你的情况是存储在$ con中;因此从第三个参数中删除$ db)。
你甚至不需要第二个$ con参数。
最初连接数据库的实际逻辑在哪里?仅仅因为mysqli_connect_errno()没有返回错误,这并不意味着连接实际存在,并且$ con在当前范围内可用。
我在mysql查询之前使用var_dump($ con)来确保它是有效的连接。