我发现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中使用预先准备好的语句的方法,这将使我更舒服,否则我将不得不同时使用这两种语句。
发布于 2019-08-30 09:23:05
我知道这是一个老问题,但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;
}更多信息可以找到关于新的Wiki。
发布于 2018-05-19 09:59:55
不,ezsql中没有任何内置的预准备语句特性。
对不安全变量使用$db->转义()函数。这是最安全的选择。
https://stackoverflow.com/questions/50214634
复制相似问题