小编ale*_*186的帖子

使用PDO,如何确保UPDATE语句成功?

似乎对于INSERT语句,可以使用if (isset($connect->lastInsertId()))以检查INSERT语句是否成功.(如果我错了,请纠正我.)

但是对于UPDATE语句,我怎么知道它是否成功?

例如,我有一个像这样的基本的:

$statement=$connect->prepare("UPDATE users SET premium='1' WHERE userid=?");
$statement->execute(array($id));
Run Code Online (Sandbox Code Playgroud)

非常感谢提前.问候

php mysql

18
推荐指数
2
解决办法
2万
查看次数

如何确保PDO的lastInsertId()不是另一个同时插入的?

我正在INSERT使用PDO 进行带有SQL查询的注册表单.在这个INSERT之后,我想提取userid刚创建的(自动递增,主键),并将INSERT其提取到另一个表中("确认代码"表)

但是,我怎么能确保该用户ID不是谁注册的第二个1/1/1000后第一用户的第二用户的?

我应该找一些锁定桌子的方法吗?我应该使用交易吗?

php mysql pdo

8
推荐指数
1
解决办法
716
查看次数

如何使用与PHP交易相结合的预准备语句?

我的目标是同时使用事务和准备好的语句,以实现数据的完整性和SQL注入的预防.

我有这个:

   try {
        $cnx = new PDO($dsn,$dbuser,$dbpass);   
        $cnx->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $cnx->beginTransaction();
        $cnx->query("SELECT * FROM users WHERE username=$escaped_input");
        $cnx->query("SELECT * FROM othertable WHERE some_column=$escaped_input_2");

        $cnx->commit();
    }

    catch (Exception $e){
           $cxn->rollback();
           echo "an error has occured";

    }
Run Code Online (Sandbox Code Playgroud)

我希望将查询合并为一个准备好的语句:

$stmt=$cxn->prepare("SELECT * FROM users WHERE username=?");
$stmt->execute(array($user_input));

$stmt_2=$cxn->prepare("SELECT * FROM othertable WHERE some_column=?");
$stmt_2->execute(array($user_input_2));
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

编辑

我收到此错误:

PHP Parse错误:语法错误,意外的T_CATCH

这是我更新的代码:

try 
{
    $cnx = new PDO($dsn,$dbuser,$dbpass);   
    $cnx->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $cnx->beginTransaction();
    $stmt=$cnx->prepare("SELECT * FROM users WHERE username=?");
    $stmt->execute(array($username));

    $cnx->commit();

    while ($row=$stmt->fetch(PDO::FETCH_OBJ)){
    echo $stmt->userid;

}

catch(Exception $e) …
Run Code Online (Sandbox Code Playgroud)

php mysql pdo

7
推荐指数
2
解决办法
2万
查看次数

如何阻止 Google 撤销我的刷新令牌?

在他们的“OAuth 2.0 Playground”工具中,谷歌声明如下:

注意:OAuth Playground 将在 24 小时后自动撤销刷新令牌。您可以通过使用“配置”面板指定您自己的应用程序 OAuth 凭据来避免这种情况。

目前尚不清楚我的“应用程序 OAuth 凭据”是什么以及“配置”面板在哪里。

我在哪里可以找到这些?

api refresh token

6
推荐指数
1
解决办法
2317
查看次数

使用CSS,我可以在悬停时增加背景图像的对比度吗?

我已经研究了其他相关问题,但他们都建议使用不透明度和透明度.

但我想做相反的事情:增加背景图像的对比度(同时使用相同的BG图像),或者实现类似的其他方式.

非常感谢提前.问候

html css

5
推荐指数
1
解决办法
5657
查看次数

为什么$(document).blur()和$(document).focus()不能与Safari或Chrome一起使用?

我正在制作一个计数器,当文档处于焦点时会倒计时.它在模糊时停止倒计时.

它在FF中工作,但使用Safari和Chrome,计数器根本不起作用.

Safari/Chrome是否存在兼容性问题?

我正在使用的是$(document).blur()$(document).focus(),并且在一个$(document).ready()区块内都有.

var tm;
$(document).ready(function(){   

        var seconds = 50;
        $('#timer').html(seconds);
        countdown();

    $(window).focus(function(){
         function countdown(){ 
         if (seconds > 0) {
            seconds--; 
            $('#timer').text(seconds);
            tm = setTimeout(countdown,1000);
            }
        if (seconds<=0){ 
            $('#timer').text('Go');
            }   
        }); 



    $(window).blur(function(){
        clearTimeout(tm);
        seconds++;
        $('#timer').text(seconds);

    });
});
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

4
推荐指数
1
解决办法
1万
查看次数

为什么PDO手册说PDO仍然可以进行SQL注入?

http://php.net/manual/en/pdo.prepared-statements.php

如果应用程序专门使用预准备语句,开发人员可以确保不会发生SQL注入(但是,如果使用非转义输入构建查询的其他部分,仍然可以进行SQL注入).

某些输入未被转义的可能情况是什么?如果所有其他输入都使用PDO进入数据库,这是否可能?

我正在考虑使用mysql_*函数处理其他输入而不使用mysql_real_escape_string进行转义的情况.还有什么可能是威胁吗?

非常感谢.问候

php mysql

4
推荐指数
1
解决办法
321
查看次数

确定数字范围的最有效方法是什么?

我的应用程序生成0到1000之间的随机整数.

我有5个范围:0-50,51-250,251-500,501-700,701-1000.(请注意,范围大小不相等.)

我将这些范围分别称为"0","50","250","500","700"(将这些名称存储在我的数据库中).

我知道我可以做以下事情:

if ($number > 700 && $number <=1000)
       $num_range='700';

else if... 
Run Code Online (Sandbox Code Playgroud)

... 等等.

但是有更有效的方法吗?

非常感谢提前.问候

php

4
推荐指数
2
解决办法
147
查看次数

在jQuery中,如何使用选择器作为参数定义函数?

我正在尝试定义一个函数:

var photoWidth = $('#photo_preview').width();
var photoHeight = $('#photo_preview').height();

if (imgHeight > imgWidth){
    $('#photo_preview').css('width','100');
    }
Run Code Online (Sandbox Code Playgroud)

我的目标是创建一个类似于以下的函数:

resizePhoto(theselector);
Run Code Online (Sandbox Code Playgroud)

...参数"theselector"是$('#photo_preview')或任何其他选择器.

注意:我不能使用这个类.

我该怎么办?

javascript jquery

3
推荐指数
1
解决办法
3722
查看次数

在动态更改之前,如何告诉jquery html()元素到其原始值?

我有一个div,我曾经html()改变它的内容.我正在做一个"取消"按钮,我想html()回到原来的价值.

有没有一种有效的方法来做到这一点?我试图再次避免使用html()整个代码,因为它看起来不太好,可能不是最好的做法.

非常感谢提前.问候

html javascript jquery

2
推荐指数
1
解决办法
1278
查看次数

标签 统计

php ×5

mysql ×4

html ×3

javascript ×3

jquery ×3

pdo ×2

api ×1

css ×1

refresh ×1

token ×1