首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ezsql编写的语句

用ezsql编写的语句
EN

Stack Overflow用户
提问于 2018-05-07 12:47:45
回答 2查看 662关注 0票数 0

我发现ezSQL库非常有用,但据我所见,其中没有准备好的语句的实现,对吗?还是有什么我不知道的?

我已经签出了从http://justinvincent.com/ezsql下载的帮助文件

例如:我有一些疑问,比如

代码语言:javascript
复制
$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对象。

代码语言:javascript
复制
$conn = new mysqli($servername, $username, $password, $dbname);

但是我想完全摆脱它,只使用我的$db对象,即:

代码语言:javascript
复制
$db = new ezSQL_mysqli();

我希望有一种在ezSQL中使用预先准备好的语句的方法,这将使我更舒服,否则我将不得不同时使用这两种语句。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-30 09:23:05

我知道这是一个老问题,但v3.08+的准备语句有一些选项。

创建连接时,只需使用$db->prepareOn();。下面是一个使用以下代码的示例

代码语言:javascript
复制
// 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;
}

更多信息可以找到关于新的Wiki

票数 2
EN

Stack Overflow用户

发布于 2018-05-19 09:59:55

不,ezsql中没有任何内置的预准备语句特性。

对不安全变量使用$db->转义()函数。这是最安全的选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50214634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档