2011-09-28 69 views
0

在PHP script.All我得到我有以下的是一个空白页,没有错误或没有。简单的PHP/MySQL的不工作

error_reporting(E_ALL); 
ini_set("display_errors", 1); 
$database = "mydatabase"; 
$con = mysql_connect("localhost", "admin", "password") or die(mysql_error()); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
$db = mysql_select_db($database); 
if(!$db){ 
    die('Could not connect: ' . mysql_error()); 
} 
if(isset($_POST['id'])){ 
$userid = mysql_real_escape_string($_POST['id']); 
echo($userid); 
} 
if(isset($_POST['name')){ 
$username = mysql_real_escape_string(htmlentities($_POST['name'])); 
echo($username); 
} 

$query = mysql_query("SELECT * FROM userinfo 
WHERE userid ='$userid'")or die(mysql_error()); 
if(mysql_num_rows($query) > 0){ 
    echo "yeah"; 
}else{ 
$query = mysql_query("INSERT INTO userinfo (username,userid) 
VALUES ($username,$userid)")or die(mysql_error()); 
if(mysql_affected_rows($query)== 1){ 
echo "UPDATED"; 

}else{ 
    echo "NOPE"; 
} 
} 
+1

查看你的服务器错误日志,看看是否有东西出现在那里。查看源代码显示的是什么?然后注释掉大部分脚本,运行它,看看会发生什么,然后取消注释一些代码,然后取消更多代码,并继续这样做,直到问题暴露出来。 – Marvo

+2

当你从命令行执行它时会发生什么?你把标题发送给浏览器了吗?检查服务器(apache?)错误日志:它说什么? – Konerak

+0

你的php.ini中有display_errors吗?如果你不这样做,只需从服务器获得一个500而不是错误。 – regality

回答

2

你应该格式化你的代码更好。如果(isset($ _ POST ['Name')){

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 
$database = "mydatabase"; 
$con = mysql_connect("localhost", "admin", "password") or die(mysql_error()); 

if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

$db = mysql_select_db($database); 
if(!$db) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

if(isset($_POST['id'])) 
{ 
    $userid = mysql_real_escape_string($_POST['id']); 
    echo($userid); 
} 

if(isset($_POST['name'])) 
{ 
    $username = mysql_real_escape_string(htmlentities($_POST['name'])); 
    echo($username); 
} 

$query = mysql_query("SELECT * FROM userinfo WHERE userid ='$userid'")or die(mysql_error()); 
if(mysql_num_rows($query) > 0) 
{ 
    echo "yeah"; 
} 
else 
{ 
    $query = mysql_query("INSERT INTO userinfo (username,userid) VALUES ($username,$userid)")or die(mysql_error()); 
    if(mysql_affected_rows($query)== 1) 
    { 
     echo "UPDATED"; 
    } 
    else 
    { 
     echo "NOPE"; 
    } 
} 
?> 
+0

这可能是它 –

+0

谢谢,现在我得到一个错误,mysql_affected_rows()函数是不是一个有效的资源链接。它确实插入它。 – james

+0

我认为也可以通过这个逻辑来做到这一点,而不是回应一件事。 ($ CON OK,$ DB OK,后期没有设置好,查询(用户ID像 '')OK,结果集(> 0)确定,退出!) – horatio

2

你也有你的SQL的错误:

INSERT INTO userinfo (username,userid) 
VALUES ($username,$userid) 

的位置值应该被引用:

INSERT INTO userinfo (username,userid) 
VALUES ('$username', '$userid') 
+0

的用户ID也根据样本选择 – Einacio

+0

感谢它帮 – james