으로 주어진다. 내 갤러리를 위해 투표 시스템을 만들고있다. 그리고 나는이 오류가 발생합니다 : mysql_num_rows() 매개 변수 1 리소스, 부울 주어진 것으로 기대하고있다. 거기에 중복 답변을 많이 볼 수 있습니다. 어쩌면 모든 코드에서 눈이 멀어졌지만 오류를 찾을 수 없습니다.mysql_num_rows()는 매개 변수 1이 리소스가 될 것으로 예상하고, 부울은
<?php
$ip = $_SERVER['REMOTE_ADDR'];
if($_POST['id'])
{
$id = $_POST['id'];
$id = mysql_escape_String($id);
$ip_sql = mysql_query("SELECT ip_add FROM voting_ip WHERE id_fk='$id' AND ip_add='$ip'");
$count = mysql_num_rows($ip_sql);
if($count==0)
{
// Update
$sql = "UPDATE votes SET up=up+1 WHERE id='$id'";
mysql_query($sql);
// Insert IP address and Message Id in Voting_IP table.
$sql_in = "INSERT INTO voting_ip (id_fk,ip_add) VALUES ('$id','$ip')";
mysql_query($sql_in);
echo "<script>alert('Thanks for the vote');</script>";
}
else
{
echo "<script>alert('You have already voted');</script>";
}
$result = mysql_query("SELECT up FROM votes WHERE id='$id'");
$row = mysql_fetch_array($result);
$up_value=$row['up'];
echo $up_value;
}
?>
새로운 코드 :
<?php
include ('config/connection.php');
$ip = $_SERVER['REMOTE_ADDR'];
if($_POST['id'])
{
$id = $_POST['id'];
$id = mysqli_real_escape_String($id);
//Verify IP address in Voting_IP table
$q = "SELECT ip_add FROM voting_ip WHERE id_fk='$id' AND ip_add='$ip'";
$r = mysqli_query($dbc, $q);
$count = mysqli_num_rows($q);
if($count==0)
{
// Update Vote.
$sql = "UPDATE votes SET up=up+1 WHERE id='$id'";
// Insert IP address and Message Id in Voting_IP table.
$sql_in = "INSERT INTO voting_ip (id_fk,ip_add) VALUES ('$id','$ip')";
echo "<script>alert('Thanks for the vote');</script>";
}
else
{
echo "<script>alert('You have already voted');</script>";
}
$result = "SELECT up FROM votes WHERE id='$id'";
$row = mysqli_result($result);
$up_value=$row['up'];
echo $up_value;
}
?>
오류 :
mysqli_real_escape_string는() 기대 정확히에 주어진 2 개 매개 변수 1 : $ ID = mysqli_real_escape_String ($ 아이디);
: mysqli_num_rows()는 매개 변수 1이 mysqli_result가되도록 예상합니다. $ count = mysqli_num_rows ($ q); 정의되지 않은 함수에 mysqli_result
3 :() 호출 : $ 행 = mysqli_result ($ 결과);
$con = mysql_connect(DATABASE, USERNAME, PASSWORD, TABLE);
및 조회를 할 때마다 다음이 연결을 전달합니다
(http://stackoverflow.com/questions/12859942/why-shouldnt-i-use ['mysql_로 *'기능을 사용하지 마십시오] 바랍니다 * mysqli_ 호출 변경 -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). [SQL 주입 방지!] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –
mysql_query는 SQL을 필요로하지 않으며 연결 var? oO –
MySQL 서버에 대한 연결은 어디입니까? –