當前位置:首頁 » 編程語言 » 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 編碼");

熱點內容
事件驅動python 發布:2024-10-18 14:39:54 瀏覽:844
java熔斷 發布:2024-10-18 14:32:05 瀏覽:867
蘋果訪問限制要打開嗎 發布:2024-10-18 14:26:31 瀏覽:121
php時間數字 發布:2024-10-18 14:26:30 瀏覽:604
qq系統頭像文件夾 發布:2024-10-18 14:14:55 瀏覽:235
安卓手機請輸入密碼在哪裡 發布:2024-10-18 14:13:28 瀏覽:646
設計編譯程序注意的問題 發布:2024-10-18 14:08:43 瀏覽:255
傳智播客android視頻 發布:2024-10-18 14:04:42 瀏覽:905
手機版安卓吃雞哪個好 發布:2024-10-18 14:01:40 瀏覽:492
編程自學入門教程 發布:2024-10-18 13:50:58 瀏覽:142