php 如何把一条sql语句写入数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 如何把一条sql语句写入数据库相关的知识,希望对你有一定的参考价值。

<?php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
die('连接失败: ' . mysqli_error($conn))
;
echo '连接成功<br />'; // 设置编码,防止中文乱码mysqli_query($conn , "set names utf8");
$runoob_title = '学习 Python';
$runoob_author = 'RUNOOB.COM';
$submission_date = '2016-03-06';
$sql = "INSERT INTO runoob_tbl ".
"(runoob_title,runoob_author, submission_date) ".

"VALUES ".

"('$runoob_title','$runoob_author','$submission_date')";

mysqli_select_db( $conn, 'RUNOOB' );$retval = mysqli_query( $conn, $sql );
if(! $retval )
die('无法插入数据: ' . mysqli_error($conn))
;
echo "数据插入成功\n";
mysqli_close($conn);
?>
按照步骤开始,多看PHP手册。
参考技术A 你提的问题简直是模棱两可的
1、你是要将sql语句写入数据库,那么你就insert插这条语句到指定的字段。
2、你是要将sql语句查询出来的结果写入数据库,那么就将得到的结果insert插入。
3、你是不知道怎么查询数据库结果,那么我告诉你应该是select * from tabname
你这问题实在是太深奥了,深奥了,奥了,了。本回答被提问者和网友采纳
参考技术B 参考php手册,mysql

PHP使用PDO进行事务处理

1.PDO执行SQL语句

  exec()执行一条SQL语句,返回影响行数。

  query()执行一条SQL语句,发挥结果集,结果集是一个PDOStatement对象。

2.什么是事务

  事务就是将多条SQL语句看成一个整体,只要其中有一条语句执行异常,那么所有语句都不能执行,数据库要返回执行第一条语句之前的状态。

  假设一个实例,A要向B转账100元。那么这个事务分为两条SQL语句,A的账户减去100元,B的账户增加100元。这两条语句只要有一条不能执行,那么这个事务就不能被执行。

  为了详细演示这个事务,首先要创建一张表。

<?php
    $dsn="mysql:host=127.0.0.1;dbname=example";
    $user="root";
    $password=‘‘;
    try
    {
        $pdo=new PDO($dsn,$user,$password);
        $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        $sql="CREATE TABLE account(
                id INT(3) PRIMARY KEY AUTO_INCREMENT,
                user VARCHAR(10) NOT NULL,
                money INT(10) UNSIGNED NOT NULL);";
        $pdo->exec($sql);
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
    }    
?>

   插入两条数据

<?php
    $dsn="mysql:host=127.0.0.1;dbname=example";
    $user="root";
    $password=‘‘;
    try
    {
        $pdo=new PDO($dsn,$user,$password);
        $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        $sql="INSERT INTO account VALUES
        (NULL,‘A‘,200),
        (null,‘B‘,300);";
        $pdo->exec($sql);
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
    }    
?>

  下面开始演示事务,

  在数据库中默认的模式是自动提交,即使出现问题也是没有办法回滚的。所以首先要使用

$pdo->setAttribute(PDO::AUTOCOMMIT,0);

  关闭自动提交,这样一来当出现问题时,就可以使用

$pdo->rollback();

  进行回滚,修复操作。

  除此之外还要告诉数据库开始事务,表示接下来的SQL语句是一个事务整体使用

$pdo->beginTransaction();

   之前已经把自动提交关闭了,所以事务完毕之后,应该用

$pdo->commit();

   下面我们要开始执行事务了

 1 <?php
 2     $dsn="mysql:host=127.0.0.1;dbname=example";
 3     $user="root";
 4     $password=‘‘;
 5     try
 6     {
 7         $pdo=new PDO($dsn,$user,$password);
 8         $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
 9         $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);
10 
11         $pdo->beginTransaction();//开启事务
12 
13         $affected_row=$pdo->exec(‘UPDATE account SET money=money-100 WHERE user="A" ‘);
14 
15         $affected_row=$pdo->exec(‘UPDATE account SET money=money+100 WHERE user="B" ‘);
16 
17         /*如果执行出问题会去异常处理部分进行回滚,撤销事务中所有操作*/
18 
19         $pdo->commit();//提交
20         echo "交易成功";
21     }
22     catch(PDOException $e)
23     {
24         echo $e->getMessage();
25         $pdo->rollback();//回滚,撤销操作
26         echo "交易失败";
27     }
28     $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,1);//别忘了事务完成后开启自动提交
29 ?>

  这段脚本如果执行第三次会出错,提示交易失败,因为执行第三次是A的账户里已经没有100元了。

以上是关于php 如何把一条sql语句写入数据库的主要内容,如果未能解决你的问题,请参考以下文章

怎样把一条SQL语句查询出的结果集中的空值替换成0

sql中如何查询刚写入数据库的东西

mysql 数据操作 子查询 介绍

mssql 把一段sql 语句 插入 到数据库的字段中,里面包含多个单引号 和[

oracle语句中如何把一列的值合并为一个值,用逗号隔开?

求一条插入并返回的SQL语句