pdo

PDO - get current inserted ID

落爺英雄遲暮 提交于 2020-03-14 08:53:08
问题 $query = "INSERT INTO news VALUES (NULL, :param1 , :param2 )"; $stmt = $pdo->prepare($query); $params = array( "param1" => $p['title'], "param2" => $p['body'], ); $data = $stmt->execute($params); // here i would like get current inserted ID. Is possible? $id = $data->id ???? ; How can i make this? 回答1: $query = "INSERT INTO news VALUES (NULL, :param1 , :param2 )"; $stmt = $pdo->prepare($query); $params = array( "param1" => $p['title'], "param2" => $p['body'], ); $data = $stmt->execute($params

PDO - get current inserted ID

China☆狼群 提交于 2020-03-14 08:50:31
问题 $query = "INSERT INTO news VALUES (NULL, :param1 , :param2 )"; $stmt = $pdo->prepare($query); $params = array( "param1" => $p['title'], "param2" => $p['body'], ); $data = $stmt->execute($params); // here i would like get current inserted ID. Is possible? $id = $data->id ???? ; How can i make this? 回答1: $query = "INSERT INTO news VALUES (NULL, :param1 , :param2 )"; $stmt = $pdo->prepare($query); $params = array( "param1" => $p['title'], "param2" => $p['body'], ); $data = $stmt->execute($params

PDO - get current inserted ID

一世执手 提交于 2020-03-14 08:50:06
问题 $query = "INSERT INTO news VALUES (NULL, :param1 , :param2 )"; $stmt = $pdo->prepare($query); $params = array( "param1" => $p['title'], "param2" => $p['body'], ); $data = $stmt->execute($params); // here i would like get current inserted ID. Is possible? $id = $data->id ???? ; How can i make this? 回答1: $query = "INSERT INTO news VALUES (NULL, :param1 , :param2 )"; $stmt = $pdo->prepare($query); $params = array( "param1" => $p['title'], "param2" => $p['body'], ); $data = $stmt->execute($params

populating dropdown menu through pdo code

独自空忆成欢 提交于 2020-03-14 05:24:45
问题 ok so i have only just stared using pdo but am slowlys getting the hang of it and i am wanting to know how to make a drop down menu or list pox populate the data into the fields on the page i have started the code by looking up pdo guides etc but im having trouble finiding a solution for this. also sorry for the untidy code but again i am new to the whole programming scene thanks in advice here is my code for it so far: here is the connection string: <?php session_start(); if(!isset($_SESSION

PHP 的源码编译安装

≯℡__Kan透↙ 提交于 2020-03-13 23:55:59
PHP 架构和安装扩展的几种方式 PHP 三大模块: SAPI:接受并处理请求。 Zend Engine:PHP 的核心,负责分析 PHP 代码并转为 opcode,然后在 Zend VM 虚拟机上执行。 PHP 功能函数及扩展层:实现各种功能,例如 curl 通信、连接 MySQL 等。 PHP 中,有以下几种方式添加扩展: 把扩展编译进 PHP 通过 pecl 命令或 Linux 发行版自带的 yum、apt-get 等命令安装,动态加载(Linux 下是 *.so 文件,Windows 下是 *.dll 文件) 用 phpize 从源码编译共享 PECL 扩展库 相比通过 yum install 或 apt-get 等各大 Linux 发行版自带的安装方向,源码编译安装略显复杂,但是灵活性也更高,比如要安装 PCNTL 等扩展,就只能通过源码编译安装。 注意:源码编译安装时,只会安装指定的扩展,而好多扩展是默认不安装的。对于常用的数据库驱动、OpenSSL、GD 库等都需要指定。如果安装后发现遗漏,可以重新编译,加上相应的参数可得到驱动程序(Linux 下是 *.so 文件),然后复制到 PHP 的扩展目录(一般是 /usr/local/php/include/php/ext)下,并在 php.ini 配置文件中开启扩展既可以。 通过 yum list php72w-*

使用pdo,使用pdo无法插入数据怎么办

左心房为你撑大大i 提交于 2020-03-12 08:25:55
如果你使用了最新版的XAMPP,那么你几乎不用改变php.ini的设置,就可以使用pdo but,插了一晚上,程序既不报错也不插入数据,真是气死人,后来发现是实例化pdo对象的时候没有指定字符集。 所以一定设定字符集属性,否则极有可能插入数据失败 一个插入多条数据的例子(用到了事务) <?php $dbtype = 'mysql'; $dbname = 'olddream'; $user = "root"; $pwd = "wenwajiao"; $ip='127.0.0.1'; $fuckingcharset = 'utf8'; $dsn = "$dbtype:host=$ip;dbname=$dbname;charset=$fuckingcharset"; $pdo = new PDO($dsn,$user,$pwd); $rows = $pdo->prepare("select userid,username from userlist"); $rows->execute(); $pdo->beginTransaction(); $ret = $rows->fetchAll(); //update rbac_user set mypass = ? where userid = ? for($i=0;$i<count($ret);$i++) { $sql = "insert

踩到两只“bug”

可紊 提交于 2020-03-08 04:14:48
  近期在修复ex和头儿的代码时,碰到两个特别点的bug,其实也不能称之为bug,非常简单的用法,稍不严谨点可能就出错了。   第一个是in_array,大家都知道功能是检查一个值是否在数组中,第三个参数传入true是严格模式检查,比较的时候要求类型一致,问题就在这个严格,比如现在有这么个判断:          可以猜猜是否有输出,结果让人大跌眼镜,竟然打印了。这个非严格模式很有点模糊,当然知道这里不会检查类型,比如官网或者手册上会举若干例子,最典型的就是,数组中有数字字符串,然后判断等值的整型数是否在数组中时,结果为真,或者只是大小写不同的字符串也行。这也还好说,比如这里的在检查时,会将字符串"cz"转为整型再与0比较,结果还是真就是true了。是不是php字符串转为整型为0才导致这种结果呢?貌似不是。比如下面:            单个c字符在用它时仍没有转化为单个ASCII码值,仍然最后转化成了0,所以下面的也打印了        因此非严格模式的in_array所做的检查,比如对于数字和字符串之间大概就是,先强转为数值型,然后进行数值型之间的比较。转换成数值时采用类似intval的方法,以字符串第一个出现的数字开始往后找到数字字符串的最大长度,转为等值数字,如果字符串第一个是字母,转为数值则为0。所以如果检查的数组中不小心有了元素0会是个定时炸弹

PHP PDO 自动重连

喜欢而已 提交于 2020-03-06 06:42:54
<?php //-----config--------------------------------------// $dbHost = 'localhost'; $dbName = 'aaa'; $dbUser = 'root'; $dbPass = ''; //--------------------------------------------------// class database{ private $dbObj = false; private $dbHost = false; private $dbName = false; private $dbUser = false; private $dbPass = false; function __construct($dbHost, $dbName, $dbUser, $dbPass){ $this->dbHost = $dbHost; $this->dbName = $dbName; $this->dbUser = $dbUser; $this->dbPass = $dbPass; while(!$this->connect()){ sleep(1); echo "初始化数据库连接失败\n"; }; } public function connect(){ try{ $this->dbObj = new

2 same SQL-Querys … one works, one gets error message “Call to a member function prepare() on null” [duplicate]

被刻印的时光 ゝ 提交于 2020-03-05 06:04:13
问题 This question already has an answer here : My PDO Statement doesn't work (1 answer) Closed last month . I work on an bigger database project. Now I become curious, because there are to same SQL-Query, where the first get's an error and the second, same, workes fine. I don't know. Meanwhile I doubt my mind. Here are the short script part: $sql = "SELECT * FROM `wt_name` WHERE `n_surname` LIKE 'A%' AND `n_file` = '4' AND `n_type` = 'NAME' GROUP BY `n_id` ORDER BY `n_surname`, `n_givn` ";

PDO 完全使用教程

廉价感情. 提交于 2020-03-02 05:31:56
一.PDO异常处理 PDO::ATTR_ERRMODE PDO::ATTR_ERRMODE//不报错误(忽略)(0) PDO::ERRMODE_WARNING //以警告的方式报错(1) PDO::ERRMODE_EXCEPTION //以异常的方式报错(2) <?php try { $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', 'root'); // 设置以异常的方式返回错误 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { die('数据库连接失败' . $e->getMessage()); } 二.PDO预处理方法 prepare() //用于执行查询SQL语句,返回PDOStatement对象 bindValue() //将值绑定到对应的一个参数,返回布尔值 bindParam() //将参数绑定到相应的查询占位符上,返回布尔值 bindColumn() //用来匹配列名和一个指定的变量名 execute() // 执行一个准备好了的预处理语句,返回布尔值 rowCount() // 回使用增、删、改、查操作语句后受影响的行总数 $sql="INSERT INTO