我是一个新手,但是我很难找到这个问题的答案。我有两段代码,都工作,但我不知道为什么。
// 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
事先感谢贵方提供的照明
你的第一个例子
$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
这两个调用都匹配函数的签名和参数顺序。
$result = mysqli_query($dbc,$query); // MySQLi (link, query)
$result = mysql_query($sql, $dbc); // MySQL (query, link)
在第一个示例中使用mysqli_query
,在第二个示例中使用mysql_query
。
两个不同的函数,两个不同的参数顺序,这就是为什么我"爱"PHP
因为mysql_query()期望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()
。
函数mysql_select_db
允许您沿着代码选择另一个db,而不需要'另一个'新连接,使用与mysql_connect
开始的相同的连接。