當前位置:首頁 » 編程語言 » sql佔位符php
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql佔位符php

發布時間: 2022-12-22 03:26:35

⑴ PHP 在5.1.和5.2.之間 PDO資料庫操作中的不同

PHP 在5.1.和5.2.之間 PDO資料庫操作中的不同
1.使用佔位符,避免逐字輸入數據到sql中。自動處理引號和反斜線等字元的轉義——增加安全性。
2.預先「准備」一條語句,然後在每次執行時綁定不同值達到重用的目的。——常用於以後被多次執行的語句。
3.可讀性強。
代碼資料庫連接代碼都一樣.
$protol = 'mysql:host=localhost;dbname=test';$username = 'monty';$passwd = '0818';$dbh = new PDO($protol, $username, $passwd);

⑵ 關於php使用sqlsrc_query()函數執行sql代碼的問題

你試試下面的代碼:

$userid = $_POST['ID']; //用戶ID
$userpw = $_POST['password']; //用戶輸入的密碼
$sql = "select * from AllID where ID=$userid and password=$userpw";
$query = sqlsrv_query($admin_conn, $sql); //執行SQL語句
if( $query === false){ //查詢不到結果
print_r(sqlsrv_errors());
echo "<script>alert('登錄失敗');</script>";
echo "<script>window.history.go(-1);</script>"; //返回上一級頁面
}
else{ //執行語句無誤
echo "登錄成功,3秒後自動跳轉到首頁...";
}

⑶ WMSYS.WM_CONCAT的問題

最直接的方法是再加一層select然後where過濾。
1、佔位符的問題要看你是java、php、還是存儲過程?
2、前台傳來的是一串PRMTYPE(多個)、還是單個PRMTYPE值?
單個的話應該是and instr(PRMTYPE,:P_PRMTYPE)>0這樣判斷。佔位符:P_PRMTYPE就是在sql語言環境下的方式。

⑷ php如何防止sql注入

PHP防止sql注入是一個比較低級的問題了,這個問題其實在我大一上學期做第一個個人博客的時候就已經關注過了,不過簡單的說一下關於PHP防注入的方式吧。


對於現在的防注入技術其實已經成熟了,對於一個站點該關心的不是防注入了,而是大規模高並發如何處理的問題,或者關於各種其他漏洞,比如現在世界上仍然有百分之80使用redis的站點存在redis漏洞,通過redis漏洞可以直接拿到機器的訪問許可權,一般來說都是直接給你種一個挖礦機器人來。

⑸ 為什麼不用字元串拼接可以防止sql注入

sql
=
"select
*
from"
&
mc
'怎麼拼對嗎?
這個是正確的。
set
rs
=
conn.execute("select
*
from
&
mc")
『怎麼拼接對嗎?
這個是不對的。這個裡面的sql語句建議賦值給一個變數,然後直接調用變數,當然也可以這么寫,不過要注意格式:set
rs
=
conn.execute("select
*
from
"&
mc)應該是這個樣子的,不知道有沒有記錯,你試試看。

⑹ php操作MySQL中單引號與怎麼處理

花括弧,花括弧中既可以輸出簡單變數,也可以輸出復雜變數,如數組、對象等;

1.$a = 'abcd';2.$b = array('aaa' => 'abcd', 'bbb' => array(12,34));3.echo "{$a}"; // 輸出 abcd4.echo "{$b['aaa']}"; // 輸出 abcd5.echo "{$b['bbb'][1]}"; // 輸出 34
所以寫的時候想偷懶就用花括弧,不會出錯;
但是在性能上,單引號的性能最好,因為單引號中的內容會直接被當成字元串,沒其他的解析;而解析雙引號的時候,會先判斷雙引號內有沒有變數,有變數就把變數用變數值代替,最後再輸出雙引號內整個的內容;花括弧就更不用說了,可以輸出復雜的變數內容。

⑺ php中SQL語句能不能用佔位符代替表的名字

這樣做不行,佔位符的用法一般是在字元串處理的函數中的,而不是在prepare這個函數中。

建議你先做一個字元串處理,將佔位符用類似「[strKey]」這樣的字元標簽佔位,然後再去替換這個標簽(用str_replace函數)。

@str='createtableifnotexists[TableName](idint(11)unsignednotnullauto_incrementprimarykey,uservarchar(255)notnull,contenttextnotnull,ctimedatetime)';
@str=str_replace("[TableName]","myTableName",@str);

這樣是比較好理解的。

⑻ php mysqli 預處理 怎麼綁定參數

<?php

/* 連接資料庫類 MysqlConnect */

class MysqlConnect{
private $dbhost=null;
private $dbuser=null;
private $dbpwd=null;
private $dbname=null;
private $dbport=null;
private $ifpdo=null;
private $dburi=null;
private $handler=null;

function __construct($dbhost,$dbuser,$dbpwd,$dbname,$dbport,$ifpdo,$dburi){
$this->dbhost=$dbhost;
$this->dbuser=$dbuser;
$this->dbpwd=$dbpwd;
$this->dbname=$dbname;
$this->dbport=$dbport;
$this->ifpdo=$ifpdo;
$this->dburi=$dburi;//PDO的URI參數,可以查手冊
if($this->ifpdo==1){//表示調用PDO來操作資料庫
$this->handler=$this->CreatePdo();
}elseif($this->ifpdo==0){//這里可以寫MYSQLI的方法
$this->handler=null;
}
}
/* ----------------這里是入口--------------------- */
//@param sql:外部調用時傳遞的完整SQL語句
//@param bindArray:綁定的參數數組,與sql語句有關,如果沒有PDO佔位符此處為空
//@param action:傳遞操作參數,"select"/"update"/"delete"/"insert"
public function exeSql($sql,$bindArray=array(),$action=""){
$stmt=$this->handler->prepare($sql);
$stmt->execute($bindArray);
switch($action){
case "select":
return $stmt->fetch(PDO::FETCH_ASSOC);
break;
case "selectAll":
return $stmt->fetchAll(PDO::FETCH_ASSOC);
break;
case "update":
case "delete":
return $stmt->rowCount();
break;
case "insert":
return $this->handler->lastInsertId();
break;
case "count":
return $stmt->rowCount();
default:
return "";
}
}
public function query($sql){
return $this->handler->query($sql);
}
private function CreatePdo(){
try{
$handler=new PDO($this->dburi,$this->dbuser,$this->dbpwd);
$handler->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
return $handler;
}catch(PDOException $e){
$e->getMessage();
$this->handler=null;
}
}
private function __get($args){
if($args=='handler'){
return $this->handler;
}
}
}
require(NEO_A_P.'\data\sqlconfig.php');//這里是sql的連接文件,下面創建對象的時候需要的變數就是這個文件里要有的
$handler=new MysqlConnect($dbhost,$dbuser,$dbpwd,$dbname,$dbport,$ifpdo,$dburi);
?>