Php 将MYSQL_u3;转换为PDO错误

Php 将MYSQL_u3;转换为PDO错误,php,pdo,Php,Pdo,我将旧的MYSQL.*代码转换为PDO。我以为一切都很好,但我有一个错误: <?php define('DB_DRIVER', 'mysql'); define('DB_HOST', 'localhost'); define('DB_NAME', 'xxxxx'); define('DB_USER', 'xxxxx'); define('DB_PASSWORD', 'xxxxx'); set_time_limit(0); if (isset(

我将旧的
MYSQL.*
代码转换为PDO。我以为一切都很好,但我有一个错误:

<?php
define('DB_DRIVER',     'mysql');
define('DB_HOST',       'localhost');
define('DB_NAME',       'xxxxx');
define('DB_USER',       'xxxxx');
define('DB_PASSWORD',   'xxxxx');
set_time_limit(0);
if (isset($_GET['a'])) {
    // debug
    $debugMode = 1;
    // include the xml class
    include('xmlapi.php');
    // try...
    try {
        // credentials username,password,host(ip),domain
        $cpanelU = $_GET['cpu'];
        $cpanelP = $_GET['cpp'];
        $cpanelH = $_GET['cph'];
        $cpanelD = $_GET['cpd'];
        $ftpUser = $_GET['ftu']; // ftp username
        $ftpPass = $_GET['ftp']; // ftp password
        $userkey = $_GET['api'];
        // setup
        $xmlapi = new xmlapi($cpanelH);
        $xmlapi->password_auth($cpanelU,$cpanelP);
        $xmlapi->set_debug(1);
        $xmlapi->set_port(2083);
        $xmlapi->set_output('array');
        // add an addon-domain
        $args1  = [
            'dir' => 'public_html/' . $cpanelD,
            'newdomain' => $cpanelD,
            'subdomain' => strstr($cpanelD, '.', true)
        ];
        $query1 = $xmlapi->api2_query($cpanelU, 'AddonDomain', 'addaddondomain', $args1);
        print "<pre>"; print_r($query1); print "</pre>";
        $pdo = new PDO(sprintf('%s:host=%s;dbname=%s', DB_DRIVER, DB_HOST, DB_NAME), DB_USER, DB_PASSWORD);
        // we need to save any error to the database here
        if ($query1['data']['result'] == false) {
            // database connection
            // $c = mysqli_connect("localhost", "paydayci_exp", "milkybar1", "paydayci_exp");
            // insert into mysql
            // $b = $c->query("INSERT INTO `addon_domains` (`addon_id`,`addon_api`,`addon_d_reason`,`addon_f_reason`,`addon_domain`,`addon_ftp_user`,`addon_ftp_pass`,`addon_ip`,`addon_date`) VALUES ('','".$userkey."','".htmlspecialchars(stripslashes($query1['data']['reason']))."','Failed','".$cpanelD."','".$ftpUser."','".$ftpPass."','".$cpanelH."',NOW())");
            $pdo->prepare('
                INSERT  INTO `addon_domains` (`addon_id`, `addon_api`, `addon_d_reason`, `addon_f_reason`, `addon_domain`, `addon_ftp_user`, `addon_ftp_pass`, `addon_ip`, `addon_date`)
                VALUES  (\'\', :userkey, :reason, \'Failed\', :cpanelD, :ftpUser, :ftpPass, :cpanelH, NOW())
            ')->execute([
                ':userKey' => $userKey,
                ':reason' => htmlspecialchars(stripslashes($query1['data']['reason'])),
                ':cpanelD' => $cpanelD,
                ':ftpUser' => $ftpUser,
                ':ftpPass' => $ftpPass,
                ':cpanelH' => $cpanelH
            ]);
        }
        // add an addon-domain
        if ($query1['data']['result'] == true) {
            // echo $query1['data']['reason'] . "\n\n";
            // add an ftp account
            $args2  = [
                'user' => $ftpUser . '@' . $cpanelD,
                'pass' => $ftpPass,
                'quota' => 0,
                'homedir' => 'public_html/' . $cpanelD
            ];
            $query2 = $xmlapi->api2_query($cpanelU, 'Ftp', 'addftp', $args2);
            // if the result bool is set
            if ($query2['data']['result'] == true) {
                // print "<pre>"; print_r($query2); print "</pre>";
                // database connection
                // $c = mysqli_connect("localhost", "paydayci_exp", "milkybar1", "paydayci_exp");
                // insert into mysql
                // $b = $c->query("INSERT INTO `addon_domains` (`addon_id`,`addon_api`,`addon_d_reason`,`addon_f_reason`,`addon_domain`,`addon_ftp_user`,`addon_ftp_pass`,`addon_ip`,`addon_date`) VALUES ('','".$userkey."','".htmlspecialchars(stripslashes($query1['data']['reason']))."','".$query2['data']['reason']."','".$cpanelD."','".$ftpUser."','".$ftpPass."','".$cpanelH."',NOW())");
                $pdo->prepare('
                    INSERT  INTO `addon_domains` (`addon_id`, `addon_api`, `addon_d_reason`, `addon_f_reason`, `addon_domain`, `addon_ftp_user`, `addon_ftp_pass`, `addon_ip`, `addon_date`)
                    VALUES (\'\', :userkey, :reason1, :reason2, :cpanelD, :ftpUser, :ftpPass, :cpanelH, NOW())
                ')->execute([
                    ':userKey' => $userKey,
                    ':reason1' => htmlspecialchars(stripslashes($query1['data']['reason'])),
                    ':reason2' => $query2['data']['reason'],
                    ':cpanelD' => $cpanelD,
                    ':ftpUser' => $ftpUser,
                    ':ftpPass' => $ftpPass,
                    ':cpanelH' => $cpanelH
                ]);
                // DEBUG
                if ($debugMode) {
                    $fp = fopen('masterDebug.txt', 'a');
                    fwrite($fp, "INSERT INTO `addon_domains` (`addon_id`,`addon_api`,`addon_d_reason`,`addon_f_reason`,`addon_domain`,`addon_ftp_user`,`addon_ftp_pass`,`addon_ip`,`addon_date`) VALUES ('','".$userkey."','".htmlspecialchars(stripslashes($query1['data']['reason']))."','".$query2['data']['reason']."','".$cpanelD."','".$ftpUser."','".$ftpPass."','".$cpanelH."',NOW())\n");
                    fclose($fp);
                } // $debugMode
            } else {
                ####
                # Need some form of error reporting...
                ####
                // database connection
                // $c = mysqli_connect("localhost", "paydayci_exp", "milkybar1", "paydayci_exp");
                // insert into mysql
                // $b = $c->query("INSERT INTO `addon_domains` (`addon_id`,`addon_api`,`addon_d_reason`,`addon_f_reason`,`addon_domain`,`addon_ftp_user`,`addon_ftp_pass`,`addon_ip`,`addon_date`) VALUES ('','".$userkey."','".htmlspecialchars(stripslashes($query1['data']['reason']))."','".$query2['data']['reason']."','".$cpanelD."','".$ftpUser."','".$ftpPass."','".$cpanelH."',NOW())");
                $pdo->prepare('
                    INSERT  INTO `addon_domains` (`addon_id`, `addon_api`, `addon_d_reason`, `addon_f_reason`, `addon_domain`, `addon_ftp_user`, `addon_ftp_pass`, `addon_ip`, `addon_date`)
                    VALUES (\'\', :userkey, :reason1, :reason2, :cpanelD, :ftpUser, :ftpPass, :cpanelH, NOW())
                ')->execute([
                    ':userKey' => $userKey,
                    ':reason1' => htmlspecialchars(stripslashes($query1['data']['reason'])),
                    ':reason2' => $query2['data']['reason'],
                    ':cpanelD' => $cpanelD,
                    ':ftpUser' => $ftpUser,
                    ':ftpPass' => $ftpPass,
                    ':cpanelH' => $cpanelH
                ]);
            }
        }
    } catch (Exception $e) {
        echo $e;
    }
} else {  // isset
    header('Location: http://www.site1.com/');
}

看看这一行:

这一行:


它不是同一个变量
$userKey
=
$userkey
(K vs.K)-变量名区分大小写。

请看这一行:

这一行:


它不是同一个变量
$userKey
=
$userkey
(K vs.K)-变量名区分大小写。

参数名userkey在SQL语句中是小写的


execute调用中的K是userKey的大写字母。

参数名userKey在SQL语句中是小写字母



execute调用中的K是userKey的大写字母。

捕捉得好,我刚在你发布之前发现了它。你错过了什么。@Fred ii-你能给我一个线索吗?@AlonEitan事实上,你都找到了,我的错;-)@弗雷德二世-耶!谢谢:)接得好,我刚在你发帖前发现了。你错过了什么。@Fred ii-你能给我一个线索吗?@AlonEitan事实上,你都找到了,我的错;-)@弗雷德二世-耶!谢谢:)
userkey
!=
userKey
htmlspecialchars(stripslashes
为什么要使用它?您使用的是一个准备好的语句。注意:未定义的变量:userKey…可能与此代码重复。我会重新考虑此代码。您在这里有3次相同的查询。
userKey
!=
userKey
为什么要使用它?您使用的是一个准备好的语句。注意:未定义变量:userKey…可能与此代码重复。我会重新考虑此代码。您在这里有3次相同的查询。您遗漏了一些与此无关的参数名称。您遗漏了一些与此无关的参数名称。
$userkey = $_GET['api'];
':userKey' => $userKey,