mysql_query($sql,$conn)
时间: 2023-12-31 10:04:13 浏览: 162
mysql_query() 函数在 PHP 中用于向 MySQL 数据库发送查询或命令。它需要两个参数:第一个参数是要发送的查询或命令,第二个参数是连接到 MySQL 数据库的标识符。例如:
```
$sql = "SELECT * FROM users";
$conn = mysql_connect("localhost", "username", "password");
$result = mysql_query($sql, $conn);
```
上面的代码将发送一个 SELECT 查询到名为 users 的表,并将结果存储在变量 $result 中。$conn 参数表示与 MySQL 数据库的连接,可以使用 mysql_connect() 函数打开连接。注意,mysql_query() 函数已经在 PHP 7.0 中被弃用,应该使用 mysqli_query() 或 PDO 对象代替。
相关问题
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> class mysql{ private $db_host; private $db_name; private $db_pwd; private $db_database; private $conn;//数据库连接标识; private $result;//执行 query 命令的结果资源标识 private $sql;//sql 执行语句 public function construct($localhsot,$hostname,$password,$dbname) { $this->db_host=$localhsot; $this->db_name=$hostname; $this->db_pwd=$password; $this->db_database=$dbname; } public function connect($conn){ $this->conn=$conn; if($this->conn="pconn") { d); ); //永久链接 $this->conn=mysql_pconnect($this->db_host,$this->db_name,$this->db_pw }elseif($this->conn="conn"){ $this->conn=mysql_connect($this->db_host,$this->db_name,$this->db_pwd } $select=mysql_select_db($this->db_database,$this->conn); mysql_query("set names 'gbk'"); } /*public function mysql_select( { mysql_select_db($this->conn,$this->db_database); }*/ public function close_connection(){ if($this->conn){ mysql_close($this->connect) or die(mysql_error()); } } } ?> </body> </html> <?php include_once('function/mysql.class.php'); $db_conn=new mysql('localhost','root','','borrow'); $db_conn->connect('conn'); $sql="select * from book_msg"; $result=mysql_query($sql); $num=mysql_num_rows($result); //$book_msg=mysql_fetch_array($result); ?>
这段代码是一个PHP程序,主要实现了数据库连接和查询功能。具体来说,代码中定义了一个mysql类,其中包括了私有变量和公共方法。私有变量包括了数据库主机名、数据库用户名、数据库密码、数据库名、数据库连接标识和执行query命令的结果资源标识等。公共方法包括了构造函数、连接数据库、关闭数据库连接等。在代码中,首先通过构造函数初始化私有变量,然后通过connect方法连接数据库,并且针对不同的连接方式(永久连接或临时连接)采取不同的连接方法。接下来,通过mysql_query函数执行查询语句,并且通过mysql_num_rows函数获取查询结果的行数。最后,通过mysql_fetch_array函数获取查询结果的数组。需要注意的是,代码中存在一些语法错误,例如在connect方法中的if语句判断时应该使用双等号(==)而不是单等号(=),在close_connection方法中的mysql_close函数应该传入$this->conn参数而不是$this->connect。此外,代码中的mysql函数已经被弃用,建议使用mysqli或者PDO等更为先进的数据库操作方式。
下列代码有什么错误:$sql = "select * from products"; $datarow = mysqli_num_rows($sql); $res= mysqli_query($conn,$sql); if($res){ echo'成功!'; echo'<hr/>'; for($i=0;$i<$datarow;$i++){ $sql_arr = mysql_fetch_assoc($sql); $id=$sql_arr['id']; $productname=$sql_arr['productname']; $category=$sql_arr['category']; $brand=$sql_arr['brand']; $image=$sql_arr['image']; $description=$sql_arr['description']; $price=$sql_arr['price']; echo "<tr><td>$id</td><td>$productname</td><td>$category</td><td>$brand</td><td>$image</td><td>$description</td><td>$price</td></tr>"; } }else{ echo'失败!'; }
这段代码有以下错误:
1. 没有连接到数据库。
2. `$datarow` 没有正确赋值,导致后面的循环无法正确执行,因为 `$datarow` 的值为字符串,而不是结果集的行数。
3. 在循环中使用了 `mysql_fetch_assoc()`,而不是 `mysqli_fetch_assoc()`,这会导致语法错误。
4. 在循环中没有对结果集进行遍历,导致无法获取到每一行的数据。
以下是修正后的代码:
```
// 连接到数据库
$conn = mysqli_connect("localhost", "username", "password", "database");
$sql = "select * from products";
$res = mysqli_query($conn, $sql);
$datarow = mysqli_num_rows($res);
if ($res) {
echo '成功!';
echo '<hr/>';
while ($sql_arr = mysqli_fetch_assoc($res)) {
$id = $sql_arr['id'];
$productname = $sql_arr['productname'];
$category = $sql_arr['category'];
$brand = $sql_arr['brand'];
$image = $sql_arr['image'];
$description = $sql_arr['description'];
$price = $sql_arr['price'];
echo "<tr><td>$id</td><td>$productname</td><td>$category</td><td>$brand</td><td>$image</td><td>$description</td><td>$price</td></tr>";
}
} else {
echo '失败!';
}
```
注意,这里使用了 `mysqli_fetch_assoc()` 来获取结果集中每一行的数据,并且在循环中使用了 `while` 来遍历结果集。同时,使用 `$res` 来获取结果集的行数。
阅读全文