PHP mysql_query参数顺序

时间:2011-04-07 09:33:35

标签: php

我有点像菜鸟,但我找不到这个问题的答案。我有两段代码,两者都有效,但我不确定原因。

// Connect to the database 
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
// Retrieve the score data from MySQL
$query = "SELECT * FROM table";
$result = mysqli_query($dbc,$query);            
mysqli_close($dbc); // close db

在上面的实例中,连接是第一个mysql_query参数,然后是sql查询。这来自一本书,而不是我手中的PHP手册定义的方式。

在下一个例子中首先输入sql,然后连接,我必须专门使用mysql_select_db。为什么他们都工作?

//db connection
$dbc = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$db_selected = mysql_select_db("database",$dbc); // select the db
$sql = "SELECT * from table"; // sql query 
$result = mysql_query($sql, $dbc); // make query on db
mysql_close($dbc);  //close the connection after data is acquired

提前感谢您提供的任何照明。

5 个答案:

答案 0 :(得分:1)

$result = mysqli_query($dbc,$query); // MySQLi (link, query)

$result = mysql_query($sql, $dbc); // MySQL (query, link)

答案 1 :(得分:1)

您在第一个示例中使用mysqli_query,在第二个示例中使用mysql_query

两个不同的函数,有两个不同的参数顺序,这就是为什么我“喜欢”PHP。

答案 2 :(得分:1)

你的第一个例子

$result = mysqli_query($dbc,$query);            

函数调用较新的mysqli库http://www.php.net/manual/en/mysqli.query.php

你的第二个例子

$result = mysql_query($sql, $dbc); // make query on db

是对mysql库的函数调用,http://www.php.net/manual/en/function.mysql-query.php
两个调用都匹配这些函数的签名和参数顺序。

答案 3 :(得分:0)

因为mysql_query()希​​望查询作为第一个参数而mysqli_query()希​​望你的查询为第二个。

mysqli_query

mysqli_query ( mysqli $link , string $query [, int $resultmode ] )

的mysql_query

mysql_query ( string $query [, resource $link_identifier ] )

mysql_select_db()是必需的,因为mysql_connect() 没有数据库作为参数,而不是mysqli_connect()

答案 4 :(得分:-1)

函数mysql_select_db允许您使用与mysql_connect开始的相同连接,在代码中选择另一个数据库而无需“其他”新连接。