【问题标题】:Error connecting to database in mysql using "mysqli", Where am I wrong? [closed]使用“mysqli”连接到 mysql 中的数据库时出错,我错在哪里? [关闭]
【发布时间】:2011-12-21 02:18:35
【问题描述】:

我有一个用户注册页面,用户在其中提交凭据并将其存储到数据库。下一个任务是为用户提供一个激活和验证链接到用户的邮件收件箱,这样用户点击链接并且与用户相关的激活码必须更新为 NULL 并使他的帐户处于活动状态,以便他可以登录。

我的代码: 文件 1:mysite.php

if($_REQUEST['Itemid']==209)
      {
            $email_id=$_REQUEST['email'];
            if($email_id != '')
            {


//This if condition will submit the data into the database

if (!isset($_POST['submit'])) 
{
HTML_mysite::newuser($subdom_names, $section_ord, $status); 
} 

else {

//$confirm_code=md5(uniqid(rand()));

$hostname = 'localhost'; //the parameters for the club database
$sqluser  = 'root';
$sqlpass  = '';
$dbName   = 'club';

// Get connection to MySQL
$link = @mysql_pconnect($hostname, $sqluser, $sqlpass) or die('Unable to connect to database');
// Select the database
@mysql_select_db($dbName) or die('Unable to select database');

//check if the email id already exists.

$query_usrchk = "SELECT EML, PSW FROM visitor WHERE EML = '$_POST[email]'";

//Data is being inserted in visitor table


$result_usrchk = mysql_query($query_usrchk);
$num_rows_usrchk = mysql_num_rows($result_usrchk);

//update  if email/password if correct


if($num_rows_usrchk == 1) // Checking if email id is present in the database..,if yes, status will be displayed.
{

$status="This Email address is already registered with us";
             HTML_mysite::newuser($subdom_names, $section_ord, $status);

}
else

{
$confirm_code=md5(uniqid(rand()));

$query_usrinsert = "INSERT INTO visitor(`confirm_code`,`EML`, `PSW`, `PFN`, `FFN`, `GD1`, `AID`, `FA1`, `FP1`, `CT1`, `CN1`, `FT1`, `MOB`, `CID`)
VALUES ('$confirm_code','$_POST[email]','$_POST[pswd]', '$_POST[name]',  '$_POST[organisation]',  '$_POST[department]',  '$_POST[designation]',  '$_POST[address]',  '$_POST[city]', '$_POST[zipcode]', '$_POST[country]', '$_POST[phonenumber]', '$_POST[mobile]', '$_POST[special]')";


     $result_usrinsert = mysql_query($query_usrinsert);
}

}

文件 2:confirm.php

<?
include('config1.php');

$passkey=$_GET['passkey'];


if(isset($passkey)){
$query_activate_account = "UPDATE visitor SET confirm_code=NULL WHERE(EML ='$email' AND confirm_code='$passkey')LIMIT 1";
$result_activate_account = mysqli_query($link,$query_activate_account);

if (mysqli_affected_rows($link) == 1) //if update query was successfull
{
echo "Your account is now active. You may now login here : http://*********/club/login/login.php";
}
else
echo "Not activated";
}

?>

文件 3:config1.php

<?php
$hostname='localhost';
$sqluser='root';
$sqlpass='';
$dbName='club';
$link=@mysqli_connect($hostname,$sqluser,$sqlpass) or die('Error Connecting');
@mysqli_select_db($dbName,$link) or die('Unable to connect');
?>

点击链接时我的输出是无法连接!!

请帮帮我。

【问题讨论】:

  • 你“错了”@mysqli_select_db($dbName,$link) or die('Unable to connect');
  • 你似乎在混合mysqlmysqli 函数?
  • 不要把@放在函数前面。它抑制警告,因此您基本上是在告诉 PHP 不要帮助您诊断问题
  • @N.B.哦,好吧,可能是谢谢,但你能告诉我正确的方法吗>? ,你的意思是不插入mysqli?
  • 感谢 Juhana 和 Pekka - 混合 mysql 和 mysqli 是不是一个错误??

标签: php mysql mysqli


【解决方案1】:

您的代码中有 2 个问题。

  1. 您正在混合使用 2 个 API - mysql 和 mysqli。虽然您可以同时使用两者,但您的代码必须保持一致并使用相应的方法,而不能混合使用它们。通过 mysqli 连接后,您必须使用 mysqli_* 函数才能使用此连接等等。
  2. 您正在作呕一条错误消息,该消息可能会解释您的数据库出了什么问题。

从您的代码中删除所有 @ 符号并再次运行它。
您将看到一条合理的错误消息,告诉您出了什么问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    • 2017-12-08
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多