我正在尝试插入一个mySQL数据库,我收到了这个错误:
if (mysql_num_rows($login) == 1){
这是php,php确实将用户添加到数据库中。我无法理解。
<?
session_start();
require("config.php");
$u = $_GET['username'];
$pw = $_GET['password'];
$pwh = $_GET['passwordhint'];
$em = $_GET['email'];
$zc = $_GET['zipcode'];
$check = "INSERT INTO family (loginName, email, password, passwordhint, location) VALUES ('$u', '$pw', '$pwh', '$em', '$zc')";
$login = mysql_query($check, $link) or die(mysql_error());
if (mysql_num_rows($login) == 1) {
$row = mysql_fetch_assoc($login);
echo 'Yes';exit;
} else {
echo 'No';exit;
}
mysql_close($link);
?>
谢谢,
答案 0 :(得分:4)
您正在进行INSERT
查询,因此$login
不会包含任何结果集,而是true
或false
。
所以不要这样:
if (mysql_num_rows($login) == 1) {
你可以这样做:
if (mysql_affected_rows($link) == 1) {
或者这个:
if ($login == true) {
此外,您不再需要此行:
$row = mysql_fetch_assoc($login);
与您的问题无关,但在执行SQL查询时要记住这一点非常重要:在插入之前,您需要使用mysql_real_escape_string()
转义所有$_GET
数据,以防止{{ 3}}
答案 1 :(得分:0)
mysql_query()
返回True / False