2014-12-29 3 views
0
<?php 
include "../au.php"; 

$towhom = $_POST['towhom']; 
$content = $_POST['content']; 

date_default_timezone_set('Asia/KolKata'); 
$xyz = date(DATE_RFC2822); 

$conn = mysql_connect('localhost', 'local', 'local'); 
mysql_select_db('chat', $conn); 

$q = "INSERT INTO $na (one, two, five, content, ip) 
VALUES ('$na', 'sent', '$xyz', '$content', '$ip');"; 
$w = "INSERT INTO $towhom (one, two, five, content, ip) VALUES ('$na', 'recieved', '$xyz', '$content', '$ip');"; 

if (mysql_query($q)){ 
echo "<br>&nbsp; Message sent to '".$towhom."'"; 
} else { 
    echo "<br>&nbsp; Failed 1"; 
} 
if (mysql_query($w)){ 
echo "<br>&nbsp; Message sent to '".$towhom."'"; 
} else { 
    echo "<br>&nbsp; Failed 2"; 
} 
?> 

설명 : 이것은 메시징 스크립트입니다. $ towhom 및 $ content는 양식에서 가져옵니다. $ xyz가 정의됩니다. $ na와 $ ip는 au.php 파일에 정의되어 있습니다.INSERT INTO가 처음 작동하지 않고 나중에 작동합니다.

문제 : $ q는 성공했지만 $ w는 작동하지 않습니다. $ q를 작품 w 동안 $ 성공하지 : 모든

+0

'mysql_query ($ q) 또는 die (mysql_error())'에 변경 사항을 추가하여 오류를 게시 할 수 있습니까? –

+0

'mysql_connect()'확장 기능은'mysqli 또는 PDO'를 사용하는 것이 더 이상 사용되지 않습니다 –

+0

[mysql_ *'함수를 사용하지 마십시오.] (http://stackoverflow.com/questions/12859942/why-shouldnt-use -mysql-functions-in-php)을 새 코드로 대체합니다. 더 이상 유지 관리되지 않으며 [공식적으로 권장되지 않습니다] (https://wiki.php.net/rfc/mysql_deprecation). 대신 [prepared statements] (http://en.wikipedia.org/wiki/Prepared_statement)에 대해 알아보고 [PDO] (http://us1.php.net/pdo) 또는 [MySQLi] (http : //)를 사용하십시오. us1.php.net/mysqli). –

답변

-1

먼저, 그 다음

문제가 쿼리

$q = "INSERT INTO $na (one, two, five, content, ip) 
VALUES ('$na', 'sent', '$xyz', '$content', '$ip')"; 
$w = "INSERT INTO $towhom (one, two, five, content, ip) VALUES ('$na', 'recieved', '$xyz', '$content', '$ip')"; 

에서 원치 않는 세미콜론을 제거합니다.

쿼리가 성공하지 못한 경우 많은 이유가있을 수 있습니다. 당신은 확실하지하지만 ...

시도, 다른 정보없이

$q = "INSERT INTO $na (one, two, five, content, ip) " + 
    "VALUES ('$na', 'sent', '$xyz', '$content', '$ip')"; 
+0

다운 유권자는 왜 ..? 그렇지 않은 이유는 무엇입니까? –

-1

die(mysql_error()) 여러 줄 문자열이 문제를 일으키는 생각하여 그것을 확인해야합니다 $towhom에 포함 된 문자열이 유효한 테이블을 참조하지 않습니다. 나는 "some_user"에 메시지를 보낸다 경우, $w에 저장된 쿼리는 다음과 같이 보일 것입니다 :

INSERT INTO some_user (...) VALUES (...) 

당신은 모든 사용자에 대해 고유 한 테이블을 의미합니까? 그렇다면 그러한 테이블이 있는지 확인하십시오. 일부 오류 출력은 매우 유용합니다.

+1

왜 그런 대답을합니까? 플러스 기호에서 문자열을 연결하지 않습니다 오른쪽? –

+0

나는 생각한다. (점). 잘못하면 수정하십시오. 죄송합니다! 자바 관점에서 생각하고 있었다. –

+0

PHP 코드를 읽는 방법을 배워야합니다. 왜 문자열 연결에 대한 점 및 왜 + 기호가 없는지 확인하십시오. http://stackoverflow.com/q/1866098/3577946 –

0

, 내 추측이 있다는 것입니다 ... mysql_query($q) 또는

관련 문제