当前位置:首页 » 编程语言 » phppdosql

phppdosql

发布时间: 2022-06-29 19:16:57

① 为什么php的pdo,修改的sql语句不能执行

你的问题挺迷糊的,是不是没改变内容update返回false啊,你要用===true来确定update成功

② php使用pdo连接mssql server数据库实例

本文实例讲述了利用php的pdo来连接微软的mssql
server数据库的方法,分享给大家供大家参考。具体实现方法如下:
复制代码
代码如下:$dsn
=
'mssql:dbname=bookStore_demo;host=192.168.1.106';
$user
=
'sa';
$password
=
'123';

//mssql_connect('192.168.1.106','sa','123');

//echo
22;
try
{

//
echo
11;

$dbh
=
new
PDO($dsn,
$user,
$password);

}
catch
(PDOException
$e)
{

echo
'Connection
failed:
'
.
$e->getMessage();
}
//$sql
=
'select
*
from
article';
$sth
=
$dbh->query($sql);
$result
=
$sth->fetchAll();

var_mp($result);
希望本文所述对大家的PHP程序设计有所帮助。

③ php开pdo和mssql连接 sql server哪个更好

下载PDO_DBLIB库

PDO的各种库都可以在PECL中找到,例如,MySQL库:PDO_MYSQL、Oracle库:PDO_OCI。

作为SQL Server 的连接库,通过下面命令下载PDO_DBLIB:

复制代码
代码如下:

wget
http://pecl.php.net/get/PDO_DBLIB

安装PDO_DBLIB库

下载完成后通过PEAR安装:

复制代码
代码如下:

/usr/bin/pear install
PDO_DBLIB-1.0.tgz

如果安装成功的话,/usr/lib64/php/moles(非64位主机应该在/usr/lib/...)目录中会多出pdo_dblib.so库(如下图)。下面需要将pdo_dblib.so库与php结合起来,进入/etc/php.d
并创建名为pdo_dblib.ini 的文件。在其中写入下面代码:

复制代码
代码如下:

extension=pdo_dblib.so

重启Apache服务

复制代码
代码如下:

service httpd restart

PHP测试

通过一段简单的代码测试能否正常连接MSSQL。利用PDO进行不同类型数据库访问时,只需修改PDO()中的连接参数即可其他调用函数相同,这样在开发时不会因数据库不同而调用不同的操作函数。

复制代码
代码如下:

<?php
$db = new
PDO("dblib:host=myHost;dbname=myDB","myUserName","myPassword");
$sql =
"select count(*) count from testTable";
$res = $db->query($sql);
while
($row = $res->fetch()){
print_r($row);
}
$res = null;
$db =
null;

④ PHP实现的pdo连接数据库并插入数据功能简单示例

本文实例讲述了PHP实现的pdo连接数据库并插入数据功能。分享给大家供大家参考,具体如下:
创建配置文件
pdo_config.php
<?php
$db_Type
=
"mysql";//数据库类型
$host
=
"localhost";//主机名
$dbName
=
"test";//数据库名
$userName
=
"root";//用户名
$password
=
"root";//密码
$dsn
=
"{$db_Type}:host={$host};dbname={$dbName}";
?>
pdo插入数据库
pdo_insert.php
<?php
header('Content-type:text/html;
charset=utf-8');
require
'pdo_config.php';
try{
$pdo
=
new
PDO
($dsn,$userName,$password);//创建一个连接对象
$pdo->exec('set
names
utf8');//设置编码
$sql
=
"INSERT
student
(name,email)
VALUES
('李四','[email protected]')";
$pdo->exec($sql);
}catch
(PDOException
$e){
die('操作失败'.$e->getMessage());
}
//关闭连接
$pdo
=
null;
?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:关于php连接mssql:pdo
odbc
sql
serverPHP5中使用PDO连接数据库的方法PHP中PDO连接数据库中各种DNS设置方法小结ThinkPHP框架基于PDO方式连接数据库操作示例PHP使用ODBC连接数据库的方法tp5(thinkPHP5)框架连接数据库的方法示例PHP7使用ODBC连接SQL
Server2008
R2数据库示例【基于thinkPHP5.1框架】tp5(thinkPHP5)操作mongoDB数据库的方法thinkPHP5实现数据库添加内容的方法tp5(thinkPHP5)框架数据库Db增删改查常见操作总结PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】

⑤ 请教php中关于使用pdo进行SQL语句的预处理防止注入的问题

$pdo = new PDO("mysql:host=192.168.0.1;dbname=test;charset=utf8","root");
$st = $pdo->prepare("select * from info where id =? and name = ?");

$id = 21;
$name = 'zhangsan';
$st->bindParam(1,$id);
$st->bindParam(2,$name);

$st->execute();
$st->fetchAll();
基本示例,我想你一看就明白了,望采纳。

⑥ 为什么php的pdo不直接使用sql语句查询

其实不是全部这样的,你也可以直接query。prepare后其实并没有向数据库提交任何请求,也就是说sql语句还没有执行,只是“准备”好了一个SQL语句,你需要调用execute方法,才真正的执行。而query等于prepare+execute方法。之所以用prepare我理解有2个优点,一是你不用考虑过滤参数内容,prepare自动给你过滤或转义要插入数据库的数据,这可以防止sql注入;二是prepare可以传递参数,举个例子:
$obj = new PDO();
$data = $obj-query("SELECT * FROM `article` WHERE `id` = 1");
"); //这个问号就代表一个参数,这个参数是可以修改

⑦ 怎么样通过php使用pdo执行sql语句

$conn=newPDO("mysql:host=localhost;dbname=webdata","user","pwd");//声明pdo对象
$sth=$conn->prepare("select*frombooks");//建立pdostatement对象
$sth->execute();//执行查询
while($res=$sth->fetch(PDO::FETCH_ASSOC))//输出数据
{
echo("<div>".$res["bid"].":".$res["title"]."--".$res["author"]);
}

⑧ PHP PDO 怎么获取SQLSRV 存储过程的OUTPUT值

我在SQLSRV上建好了存储过程,单步调试能取得OUTPUT的值,但是PHP页面上尝试取得该值时,总是报错,在网上查了很多资料,都没办法解决?不知道是不是我的代码有问题,麻烦大神帮忙看看,以下为具体说明。
存储过程的OUTPUT值为 @flag INT,成功为1,失败为0,单步调试是有值的,我感觉应该不是SQL部分的问题。这里的类型也试过BIT、TINYINT、VARCHAR,一样的在SQL部分都有值,但PHP页面好像都没取到值。
try {
$dbh = new PDO($dsn, $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); try {
$dbh->beginTransaction();
$sql = "{CALL UploadMasterData(:model, :workplace, :item, :itemCategory, :itemNumber, :filename, :flag)}";
$statement = $dbh->prepare($sql);
$statement->bindParam(':model', $model, PDO::PARAM_STR);
$statement->bindParam(':workplace', $workplaceNumber, PDO::PARAM_INT);
$statement->bindParam(':item', $item, PDO::PARAM_STR);
$statement->bindParam(':itemCategory', $itemCategory, PDO::PARAM_STR);
$statement->bindParam(':itemNumber', $itemNumber, PDO::PARAM_INT);
$statement->bindParam(':filename', $filename, PDO::PARAM_STR);
$statement->bindParam(':flag', $insertFlag, PDO::PARAM_INT, 11);
$statement->execute(); /*if (!$insertFlag) {
break;
}*/
if ($insertFlag) { echo '更新成功<br>'; echo '|' . $insertFlag . '|';
$dbh->commit();
} else { echo '更新失败<br>'; echo '|' . $insertFlag . '|';
$dbh->rollBack();
}
}catch (PDOException $exception) { echo 'An error occurred while operating the database and started to roll back. PDOException info:<br>' . $exception->getMessage() . '<br>';
$dbh->rollBack();
}
}catch (PDOException $exception) { echo 'Failed to establish database connection. PDOException info:<br>' . $exception->getMessage();
}

这里$insertFlag的值好像没有接收成功,有尝试过修改:flag为@flag好像也不行,尝试很多方法,不是报错就是0,不知道是不是我接收的写的有问题,代码有删减,说的比较乱,如果有不明白的麻烦追问,请大神解答,谢谢。
An error occurred while operating the database and started to roll back. PDOException info:
SQLSTATE[IMSSP]: Types for parameter value and PDO::PARAM_* constant must be compatible for input/output parameter 7.
Array
(
[0] => IMSSP
[1] => -55
[2] => Types for parameter value and PDO::PARAM_* constant must be compatible for input/output parameter 7.
)
IMSSP193#0 C:\Apache24\htdocs\SOP\pages\do.php(193): PDOStatement->execute()
#1 {main}

以上是出现过的错误信息。
大概整理下要点,如下。
$dbh->beginTransaction();$sql = "{CALL UploadMasterData(:model, :workplace, :item, :itemCategory, :itemNumber, :filename, :flag)}";$statement = $dbh->prepare($sql);$statement->bindParam(':model', $model, PDO::PARAM_STR);$statement->bindParam(':workplace', $workplaceNumber, PDO::PARAM_INT);$statement->bindParam(':item', $item, PDO::PARAM_STR);$statement->bindParam(':itemCategory', $itemCategory, PDO::PARAM_STR);$statement->bindParam(':itemNumber', $itemNumber, PDO::PARAM_INT);$statement->bindParam(':filename', $filename, PDO::PARAM_STR);$statement->bindParam(':flag', $insertFlag, PDO::PARAM_INT | PDO::PARAM_INPUT_OUTPUT, 2048);$statement->execute();

这里的$insertFlag我老是取不到值,看到一个微软官方的示例,安照一样的方法好像就是不行,是我的理解错了吗?[以下为微软官方示例]
<?php
$database = "AdventureWorks";
$server = "(local)";
$dbh = new PDO("sqlsrv:server=$server ; Database = $database", "", "");

$dbh->query("IF OBJECT_ID('dbo.sp_ReverseString', 'P') IS NOT NULL DROP PROCEDURE dbo.sp_ReverseString");
$dbh->query("CREATE PROCEDURE dbo.sp_ReverseString @String as VARCHAR(2048) OUTPUT as SELECT @String = REVERSE(@String)");
$stmt = $dbh->prepare("EXEC dbo.sp_ReverseString ?");
$string = "123456789";
$stmt->bindParam(1, $string, PDO::PARAM_STR | PDO::PARAM_INPUT_OUTPUT, 2048);
$stmt->execute();
print $string; // Expect 987654321 ?>

而如果我把:flag改为@flag就会提示参数未定义。。。蛋疼

⑨ PHP中PDO执行的SQL语句字符串中的单引号是否需要转义

不用的,这样的语句不需要,如果是用户提交的数据就需要了!

⑩ php pdo sql语句 中文

$db->query("SELECT COUNT(*) AS total FROM member WHERE mtype='学生'")
看看字符编码是否出错,不行,就先
$db->query("set names 编码");

热点内容
战地配置有哪些 发布:2024-10-18 16:44:48 浏览:308
中国联通短信提示服务密码未完善是什么意思 发布:2024-10-18 16:42:17 浏览:709
c语言中非 发布:2024-10-18 16:21:20 浏览:143
招编程人员 发布:2024-10-18 16:19:37 浏览:422
什么数据类型存储图片 发布:2024-10-18 16:19:28 浏览:749
电脑维护服务器 发布:2024-10-18 16:18:51 浏览:435
取舍算法 发布:2024-10-18 16:12:36 浏览:249
安卓数据线一般在什么价位 发布:2024-10-18 16:09:25 浏览:732
老式安卓机怎么插卡 发布:2024-10-18 15:52:35 浏览:338
pc搭建nas服务器 发布:2024-10-18 15:51:59 浏览:266