2012-11-19 3 views
0

웬일인지 내 SQL이 어떤 생각과도 연결되지 않습니까? 함수를 사용하여 SQl에 연결했지만 $ row_results가 데이터를 반환하지 않는다는 것을 알기 때문에 몇 가지 문제가 있습니다. 이PHP SQL Connect

if (!$db_connect) 
{ 
    die('Can\'t connect: ' . mysql_error()); 
} 
+4

하시기 바랍니다가 새로운 코드를 작성하는'mysql_로 *'기능을 사용하지 않는 : 당신이 새로운 변수에 결과를 보내려면 는 yo've 그런 수익을 사용할 수 있어요. 더 이상 유지 관리되지 않으며 커뮤니티가 [지원 중단 프로세스] (http://goo.gl/KJveJ)를 시작했습니다. * [빨간색 상자] (http://goo.gl/GPmFd) *를 참조하십시오. 대신 [prepared statements] (http://goo.gl/vn8zQ)에 대해 알아야하고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용해야합니다. mysqli). 어떤 것을 결정할 수 없다면 [이 기사] (http://goo.gl/3gqF9)가 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 가이드입니다] (http://goo.gl/vFWnC). –

+0

구문 강조 표시는 스크립트에 오류가 있음을 보여줍니다. –

+0

mqsql_ * 기능을 사용하지 마십시오. mysqli 또는 PDO를 사용하십시오. 'can not connect :'. mysql_error());' "할 수 없다"에서 아포스트로피를 벗어나는 곳에 –

답변

0

변화 : PHP의 이후 버전

$db_config = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
     /* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

은이 향상된 MySQL의 라이브러리를 사용하는 것이 좋습니다.

+0

나는 그것을 통해서만 문제가 아니 었음을 알고 있습니다. stackoverflow가 불가능합니다. –

+0

쿼리를 인쇄하여 넣으십시오. 직접 SQL에서. 어떤 결과가 있습니까? –

0

이 시도

function db_connect() { 
$db_connect = mysql_connect($db_host, $db_user, $db_pass); 
if (!$db_connect) 
{ 
    die('Can not connect: ' . mysql_error()); 
} 
mysql_select_db($db_name, $db_connect); 
} 

function db_close() { 
    mysql_close($db_connect); 
} 

function db_select($table_name, $table_where) { 
    $row_result = mysql_query("SELECT * FROM '$table_name' WHERE email='$table_where'"); 
    $row_get = mysql_fetch_array($row_result); 
    $row_count = mysql_num_rows($row_result); 
} 


db_connect(); 

db_select("attachments", "[email protected]"); 
die($row_get['email']); 

db_close(); 
0

이 줄에서는 테이블 이름 주위에 따옴표가 있습니다.

$row_result = mysql_query("SELECT * FROM '$table_name' WHERE email='$table_where'"); 

테이블 이름 주위에 따옴표를 넣지 마십시오. 선택 후 mysql_error()을 실행하면 이와 관련된 오류가 다시 발생합니다.

또한 mysql_*은 더 이상 사용되지 않습니다. mysqli_* 또는 PDO를 사용해야합니다.

function db_select($table_name, $table_where) { 
    $row_result = mysql_query("SELECT * FROM '$table_name' WHERE email='$table_where'"); 
    $row_get = mysql_fetch_array($row_result); 
    $row_count = mysql_num_rows($row_result); 
} 

당신은 그것에서 아무것도 반환되지 않습니다 내가 볼 수

2

하나의 문제는,이 기능입니다.

function db_select($table_name, $table_where) { 
    $row_result = mysql_query("SELECT * FROM '$table_name' WHERE email='$table_where'"); 
    $row_get = mysql_fetch_array($row_result); 
    $row_count = mysql_num_rows($row_result); 

    return array($row_count, $row_get); 
} 

을 그리고 당신은 정말 당신이 지금 가지고있는 SQL 주입 문제를 방지하기 위해 PDO 또는 MySQL의 바운드 변수로 준비된 명령문로 전환해야합니다

당신은 예를 들어 사용하여 시작할 수 있습니다.

+0

아, 네, 변수 범위가. – Sammitch

0

변수에 문제가 있습니다. 함수 외부에 db_select 변수 $ row_get이 없습니다!

function db_select($table_name, $table_where,$connection) { 

    $row_result = mysqli_query($connection,"SELECT * FROM $table_name WHERE email='".mysqli_real_escape_string($table_where).'"); 
    $row_get = mysqli_fetch_array($row_result); 
    $row_count = mysqil_num_rows($row_result); 
    return array($row_get,$row_count); 
} 


$var = db_select("attachments", "[email protected]", db_connect()); 
echo $var[0]['email'];