Php 与MySQL建立连接的问题
因此,我在register.php页面上不断收到以下错误消息。我的托管服务提供商说,这是我的php版本,从7.1一直到5.6,我都试过了,但还是一样。下面是不断出现的错误 在第74行的/home/scylla97/public_html/register.php中,类PDOStatement的对象无法转换为int 请参阅register.php页面上的以下代码Php 与MySQL建立连接的问题,php,mysql,Php,Mysql,因此,我在register.php页面上不断收到以下错误消息。我的托管服务提供商说,这是我的php版本,从7.1一直到5.6,我都试过了,但还是一样。下面是不断出现的错误 在第74行的/home/scylla97/public_html/register.php中,类PDOStatement的对象无法转换为int 请参阅register.php页面上的以下代码 if($securimage->check($\u POST['captcha\u code'])==false){ 回显“错误验证码
if($securimage->check($\u POST['captcha\u code'])==false){
回显“错误验证码:\”;
}
否则{
$username=$_POST['username'];
$password=$_POST['password'];
$rpassword=$_POST['rpassword'];
$email=$_POST['email'];
$errors=array();
$checkUsername=$odb->prepare(“从`users`中选择COUNT(*),其中`username`=:username”);
$checkUsername->execute(数组(':username'=>$username));
$countUsername=$checkUsername->fetchColumn(0);
如果($checkUsername>0)
{
$errors['Username已被占用'];
}
如果(!ctype_alnum($username)| strlen($username)<4 | strlen($username)>15)
{
$errors[]=“用户名必须为字母数字,长度为4-15个字符”;
}
如果(!filter_var($email,filter_VALIDATE_email))
{
$errors[]=“电子邮件无效”;
}
if(空($username)| |空($password)| |空($rpassword)| |空($email))
{
$errors[]=“请填写所有字段”;
}
如果($password!=$rpassword)
{
$errors[]=“密码不匹配”;
}
if(空($errors))
{
试试{
$insertUser=$odb->prepare(“插入到`users`值中(NULL,:username,:password,:email,0,0)”;
$insertUser->execute(数组(':username'=>$username',:password'=>SHA1($password),':email'=>$email));
}
捕获(异常$exception){
返回$exception->getMessage();
}
echo'成功:用户已注册。正在重定向…;
}
其他的
{
回显“错误:
”;
foreach($errors作为$error)
{
回显'-'.$error.'
';
}
回声';
}
}
}
?>
非常感谢您的帮助:)
$checkUsername
只是一条语句。它不能单独用于检查计数
将您的if条件更改为
if ($countUsername > 0)
{
$errors['<font color="white">Username is already taken</font>'];
}
if($countUsername>0)
{
$errors['Username已被占用'];
}
您正在将PDO语句
$checkUsername
与整数进行比较(在本例中,如果大于0,则进行检查),而实际上,行数存储在$countUsername
中,因此您需要将代码更改为:
if ($countUsername> 0)
{
$errors['<font color="white">Username is already taken</font>'];
}
if($countUsername>0)
{
$errors['Username已被占用'];
}
Obs:不允许评论第74行在哪里?
phpMyAdmin
是用PHP编写的用于维护MySQL数据库的工具。这不是一个数据库,你不能连接到它。这是2017年。不要这样做。SHA1($password)$checkUsername
是一个PDO语句<代码>$countUsername包含您的计数!!!!!!谢谢大家的帮助。抱歉,我还在学习php.journey@user3657631
if ($countUsername > 0)
{
$errors['<font color="white">Username is already taken</font>'];
}
if ($countUsername> 0)
{
$errors['<font color="white">Username is already taken</font>'];
}