【问题标题】:Why SQLSTATE[HY000]: General error?为什么 SQLSTATE[HY000]: 一般错误?
【发布时间】:2012-04-29 06:50:20
【问题描述】:

这是一个用于注册组长和他的合作伙伴的代码。

<?
session_start();
require_once('db.php');
$db = new DB();
$db->newHead($_POST['fname'], $_POST['lname'], $_POST['school'], $_POST['day'], $_POST['month'], $_POST['year'], $_POST['email']);
$hId = $db->getId($_POST['email'], 1);
if ($_POST['pnum'] === 1)
{
    $db->newPartner($hId, $_POST['fname1'], $_POST['lname1'], $_POST['day1'], $_POST['month1'], $POST['year1'], $_POST['email1']);
    $pId = getId($_POST['email1'], 0);
    $db->setHeadId($hId, $pId, 1);
}
if ($_POST['pnum'] === 2)
{
    $db->newPartner($hId, $_POST['fname1'], $_POST['lname1'], $_POST['day1'], $_POST['month1'], $POST['year1'], $_POST['email1']);
    $p1Id = getId($_POST['email1'], 0);
    $db->setHeadId($hId, $p1Id, 1);

    $db->newPartner($hId, $_POST['fname2'], $_POST['lname2'], $_POST['day2'], $_POST['month2'], $POST['year2'], $_POST['email2']);
    $p2Id = getId($_POST['email2'], 0);
    $db->setHeadId($hId, $p2Id, 2);
}
header("Location:Register.php");
?>

这是 db.php 的一部分:

    public function getId($email, $type)
{
    if ($type)
        $query = "SELECT * FROM t_head where h_email = '$email';";
    else
        $query = "SELECT * FROM t_partner where p_email = '$email';";
    return $this->query($query);
}

public function newPartner($hId, $fname, $lname, $day, $month, $year, $email)
{
    $query = "INSERT INTO t_partner (p_headid, p_fname, p_lname, p_day, p_month, p_year, p_email)
    VALUES ('$hId', '$fname', '$lname', '$day', '$month', '$year', '$email');";
    return $this->query($query);
}

public function newHead($fname, $lname, $hschool, $day, $month, $year, $email)
{
    $query = "INSERT INTO t_head (h_fname, h_lname, h_school, h_day, h_month, h_year, h_email)
    VALUES('$fname', '$lname', '$hschool', '$day', '$month', '$year', '$email');";
    return $this->query($query);
}

    public function setHeadId($hId, $pId, $num)
    {
        if ($num === 1)
            $query = "UPDATE t_head SET h_p1 = '$pId' WHERE h_id = '$hId';";
        else
            $query = "UPDATE t_head SET h_p2 = '$pId' WHERE h_id = '$hId';";
        $this->execute($query);
    }

有什么问题? DB 是与 PDO 一起使用的类。 (我不知道这是什么!但我总是复制它,然后我在它的底部编写函数,它总是正常工作。)但是知道这个错误是什么意思吗?

  • 对不起,如果我粘贴了所有代码!我不知道SQLSTATE[HY000]: General error与哪个部分有关,所以我无法为您粘贴任何特定的部分/功能。

  • 我的站点被复制到另一台服务器,并且 DNS 在大约 3 小时前出于某种目的而更改。如果这个细节可以帮助你...

【问题讨论】:

标签: php mysql database


【解决方案1】:

几周前我也遇到过类似的事情。我修复了它,更改了 php.ini

我变了

;extension=php_pdo_mysql_mysqlnd.dll
extension=php_pdo_mysql_libmysql.dll

extension=php_pdo_mysql_mysqlnd.dll
;extension=php_pdo_mysql_libmysql.dll

基本上你改变了 php 使用的 mysql 驱动程序。我用的是 xampplite 1.7

【讨论】:

  • 修改php.ini时一定要重启服务器
  • 出了大问题!我的主机不是我自己的服务器(不是不同的服务器!共享服务器!)!所以我认为我没有任何访问 php.ini 的权限。
  • 如果你决定遵循这些路线,你可以看看这个。uk3.php.net/dl
  • 我试过了,但是不行:if (!extension_loaded('php_pdo_mysql_mysqlnd')) { dl('php_pdo_mysql_mysqlnd.dll'); } if (!extension_loaded('php_pdo_mysql_libmysql')) { dl('php_pdo_mysql_libmysql.dll'); }
猜你喜欢
  • 2012-10-24
  • 2012-10-25
  • 2014-12-31
  • 2021-09-10
  • 1970-01-01
  • 2013-06-20
  • 2017-06-17
相关资源
最近更新 更多