PHP执行SQL命令

时间:5年前   阅读:4767

首先,在bookstore数据库中创建一张books数据表

CREATE TABLE books(

    id INT NOT NULL AUTO_INCREMENT,

    bookname VARCHAR(80) NOT NULL DEFAULT '',

    publisher VARCHAR(60) NOT NULL DEFAULT '',

    author VARCHAR(20) NOT NULL DEFAULT '',

    price DOUBLE(5,2) NOT NULL DEFAULT 0.00,

    ptime INT NOT NULL DEFAULT 0,

    pic CHAR(24) NOT NULL DEFAULT '',

    detail TEXT,

    PRIMARY KEY(id));

));

  在PHP中,只要把SQL命令作为一个字符串传递给mysql_query()函数,就会将其发送到MYSQL服务器并执行

mysql_query()

  mysql_query()函数用于发送一条 MySQL 查询。mysql_query() 仅对 SELECT,SHOW,DESCRIBE, EXPLAIN 和其他语句返回一个resource,如果查询出现错误则返回 FALSE;对于其它类型的 SQL 语句,比如INSERT, UPDATE, DELETE, DROP 之类, mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE

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

  将要插入的3条INSERT语句声明为一个字符串

$insert = "insert into books(bookname, publisher, author, price, detail) values

('PHP','电子工业出版社','张三','80.00','PHP相关'),

('ASP','电子工业出版社','李四','90.00','ASP相关'),

('JSP','电子工业出版社','王五','70.00','JSP相关')";

  使用mysql_query()函数发送INSERT语句,如果成功返回true,失败则返回false

$result = mysql_query($insert);

var_dump($result);

mysql_affected_rows()

  mysql_affected_rows()函数用于取得前一次 MySQL 操作所影响的记录行数。执行成功则返回受影响的行的数目,如果最近一次查询失败的话,函数返回 -1

int mysql_affected_rows ([ resource $link_identifier = NULL ] )

var_dump(mysql_affected_rows());//int3 

  通常通过判断mysql_affected_rows()函数的值是否大于0来确定数据操作是否成功

mysql_insert_id()

  mysql_insert_id()函数用来取得上一步 INSERT 操作产生的 ID

int mysql_insert_id ([ resource $link_identifier ] )

<?php
$insert = "insert into books(bookname, publisher, author, price, detail) values
('PHP','电子工业出版社','张三','80.00','PHP相关'),
('ASP','电子工业出版社','李四','90.00','ASP相关'),
('JSP','电子工业出版社','王五','70.00','JSP相关')";
$result = mysql_query($insert);
if($result && mysql_affected_rows() > 0){
    //刷新页面两次后,相当于插入了两次数据。页面显示数据记录插入成功,最后一条插入的数据记录id为:4
    echo "数据记录插入成功,最后一条插入的数据记录id为:".mysql_insert_id()."<br>";
}else{
    //若在数据表删除后,则显示数据记录插入失败,错误号:1146,错误原因:La table 'bookstore.books' n'existe pas
    echo "数据记录插入失败,错误号:".mysql_errno().",错误原因:".mysql_error()."<br>";
}
?>

实际上,最后一个id应该为6,但是由于4、5、6三条语句是同时插入的,这时显示的是第一个id为4

下面,将id为4的记录的作者修改为小白

$result = mysql_query("UPDATE books SET author='小白' WHERE id='4'");

if($result && mysql_affected_rows() > 0){

    echo "数据记录修改成功<br>";

}else{

    echo "数据记录修改失败,错误号:".mysql_errno().",错误原因:".mysql_error()."<br>";

}

下面,删除作者为李四的记录

$result = mysql_query("DELETE FROM books WHERE author='李四'");

if($result && mysql_affected_rows() > 0){

    echo "数据记录删除成功<br>";

}else{

    echo "数据记录删除失败,错误号:".mysql_errno().",错误原因:".mysql_error()."<br>";

}

本站声明:网站内容来源于网络,如有侵权,请联系我们https://www.qiquanji.com,我们将及时处理。

微信扫码关注

更新实时通知

上一篇:50ETF仍在调整当中,建议继续观望

下一篇:期权隐含波动率回落

网友评论

请先 登录 再评论,若不是会员请先 注册