使用 ezsql 准备语句
prepared statement with ezsql
我发现 ezSQL 库非常有用,但据我所知,其中没有执行准备好的语句,对吗?或者有什么我不知道的?
我查看了从http://justinvincent.com/ezsql
下载的帮助文件
例如:我有一些查询像
$stmt = $conn->prepare("INSERT INTO gecici_magaza_detay VALUES ($geciciMagazaId,?,?,?,?)");
$stmt->bind_param("iiss",$gunId,$acikMi,$girisSaati,$cikisSaati);
for($j=0; $j<7; $j++) {
$gunId = $j+1;
$acikMi = (empty($acilis[$j]) || empty($kapanis[$j])) ? 0 : 1;
$girisSaati = $acikMi ? $acilis[$j] : null;
$cikisSaati = $acikMi ? $kapanis[$j] : null;
$stmt->execute();
}
其中 $conn 是一个 mysqli 对象。
$conn = new mysqli($servername, $username, $password, $dbname);
但我想完全摆脱它,只使用我的 $db 对象,它是:
$db = new ezSQL_mysqli();
我希望有一种方法可以在 ezSQL 中使用准备好的语句,这会让我更舒服,否则我将不得不同时使用两者。
不,ezsql 中没有任何内置的预处理语句功能。
对不安全的变量使用 $db->escape() 函数。这是最安全的选择。
我知道这是一个老问题,但是从 v3.08+ 开始有预准备语句的选项。
创建连接时,您只需使用 $db->prepareOn();
。这是使用此代码的示例
// To get SQL calls to use prepare statements
$db->prepareOn(); // This needs to be called at least once at instance creation
$db->query_prepared('INSERT INTO profile( name, email, phone) VALUES( ?, ?, ? );', [$user, $address, $number]);
$db->query_prepared('SELECT name, email FROM profile WHERE phone = ? OR id != ?', [$number, 5]);
$result = $db->queryResult(); // the last query that has results are stored in `last_result` protected property
foreach ($result as $row) {
echo $row->name.' '.$row->email;
}
可以找到更多信息on the new Wiki
我发现 ezSQL 库非常有用,但据我所知,其中没有执行准备好的语句,对吗?或者有什么我不知道的?
我查看了从http://justinvincent.com/ezsql
下载的帮助文件例如:我有一些查询像
$stmt = $conn->prepare("INSERT INTO gecici_magaza_detay VALUES ($geciciMagazaId,?,?,?,?)");
$stmt->bind_param("iiss",$gunId,$acikMi,$girisSaati,$cikisSaati);
for($j=0; $j<7; $j++) {
$gunId = $j+1;
$acikMi = (empty($acilis[$j]) || empty($kapanis[$j])) ? 0 : 1;
$girisSaati = $acikMi ? $acilis[$j] : null;
$cikisSaati = $acikMi ? $kapanis[$j] : null;
$stmt->execute();
}
其中 $conn 是一个 mysqli 对象。
$conn = new mysqli($servername, $username, $password, $dbname);
但我想完全摆脱它,只使用我的 $db 对象,它是:
$db = new ezSQL_mysqli();
我希望有一种方法可以在 ezSQL 中使用准备好的语句,这会让我更舒服,否则我将不得不同时使用两者。
不,ezsql 中没有任何内置的预处理语句功能。
对不安全的变量使用 $db->escape() 函数。这是最安全的选择。
我知道这是一个老问题,但是从 v3.08+ 开始有预准备语句的选项。
创建连接时,您只需使用 $db->prepareOn();
。这是使用此代码的示例
// To get SQL calls to use prepare statements
$db->prepareOn(); // This needs to be called at least once at instance creation
$db->query_prepared('INSERT INTO profile( name, email, phone) VALUES( ?, ?, ? );', [$user, $address, $number]);
$db->query_prepared('SELECT name, email FROM profile WHERE phone = ? OR id != ?', [$number, 5]);
$result = $db->queryResult(); // the last query that has results are stored in `last_result` protected property
foreach ($result as $row) {
echo $row->name.' '.$row->email;
}
可以找到更多信息on the new Wiki