[英]What's wrong with this query?
我正在尝试定义用户注册类别,这是我现在拥有的功能
<?php
///// SE SUPONE QUE AQUI EL USUARIO YA HA INTRODUCIDO SUS DATOS DE REGISTRO
/* Conectando la Base de Datos */
include("includes/basedatos.php");
require_once("includes/funciones.php");
class registro_usuarios
{
var $pass;
var $email;
var $nombre;
public function tratandovariables()
{
/* Eliminando Caracteres Especiales */
$password = htmlspecialchars($_POST['pass']);
$mail = htmlspecialchars(strip_tags($_POST['mail']));
$nombre = htmlspecialchars(strip_tags($_POST['nombre']));
if (preg_match("/^[a-zA-Z0-9\-_]{3,20}$/", $nombre))
{
/* Asignando Valor */
$this->pass = md5($password);
$this->email = $mail;
$this->nombre = $nombre;
}
else
{
echo "El nombre de usuario no es válido<br>";
exit;
}
}
public function register()
{
$this->tratandovariables();
/* Comprobando si existe el usuario */
$check = "SELECT * FROM usuarios WHERE alias = '$this->nombre'";
$qry = mysql_query($check);
/* La compracion */
if (mysql_num_rows($qry))
{
echo "Lo sentimos, el nombre de usuario ya esta registrado.<br />";
mysql_free_result($qry);
return false;
} else
{
$insert = "INSERT INTO usuarios (alias, pass, email, fid, fechar, ultima, img_src, reputacion) VALUES ('".$this->nombre."','".$this->pass."','".$this->email."','-1', 'NOW()', 'NOW()',' ', '0' )";
$qry = mysql_query($insert);
if(mysql_affected_rows())
{
echo "El Usuario $this->nombre se Registro Correctamente";
return true;
}
else
{
echo "Error Ingresando datos";
return false;
}
return false;
}
}
}
?>
问题是我总是遇到这个错误(通过一个没有奇怪字符的形式输入一个简单的varchar):
警告:mysql_fetch_array():提供的参数不是第52行/home/piscolab/public_html/keepyourlinks.com/Recetas/registro.php中的有效MySQL结果资源
我只是看不到问题..可以吗?
谢谢!
删除'now()'周围的引号,否则您将作为字符串而不是MySQL时间戳插入
在此处使用串联:
/* Comprobando si existe el usuario */
$check = "SELECT * FROM usuarios WHERE alias = '".$this->nombre."'";
PHP手册说 :
资源mysql_query(字符串$ query [,resource $ link_identifier])mysql_query()向与指定link_identifier关联的服务器上的当前活动数据库发送一个唯一查询(不支持多个查询)。
如果您没有“当前活动的数据库”,则您的mysql_ *调用将失败。 最好的做法是在调用时提供MySQL连接链接标识符。
您在哪里调用mysql_connect?
好,非常感谢您对我的帮助,
似乎有一个不同的错误(带有属性名称,tipical ...),但仍然值得,因为发现了这些错误。
如果有人需要它,则类代码为:(适应您的属性)
class registro_usuarios
{
var $pass;
var $email;
var $nombre;
public function tratandovariables()
{
/* Eliminando Caracteres Especiales */
$password = htmlspecialchars($_POST['pass']);
$mail = htmlspecialchars(strip_tags($_POST['mail']));
$nombre = htmlspecialchars(strip_tags($_POST['nombre']));
if (preg_match("/^[a-zA-Z0-9\-_]{3,20}$/", $nombre))
{
/* Asignando Valor */
$this->pass = md5($password);
$this->email = $mail;
$this->nombre = $nombre;
}
else
{
echo "El nombre de usuario no es válido<br>";
exit;
}
}
public function register()
{
$this->tratandovariables();
/* Comprobando si existe el usuario */
$check = "SELECT * FROM usuarios WHERE alias = '".$this->nombre."'";
$qry = mysql_query($check);
/* La compracion */
if (mysql_num_rows($qry))
{
echo "Lo sentimos, el nombre de usuario ya esta registrado.<br />";
mysql_free_result($qry);
return false;
} else
{
$insert = "INSERT INTO usuarios (alias, pass, mail, fid, fechar, ultima, img_src, reputacion) VALUES ('".$this->nombre."','".$this->pass."','".$this->email."','-1', NOW(), NOW(),' ', 0 )";
$qry = mysql_query($insert);
if(mysql_affected_rows())
{
echo "El Usuario $this->nombre se Registro Correctamente";
return true;
}
else
{
echo "Error Ingresando datos";
return false;
}
return false;
}
}
}
再次感谢!
试试这个吧;
$check = "SELECT * FROM usuarios WHERE alias = '".$this->nombre."'";
而且我在您的代码中看不到任何mysql_fetch_array()语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.