웬일인지 내 SQL이 어떤 생각과도 연결되지 않습니까? 함수를 사용하여 SQl에 연결했지만 $ row_results가 데이터를 반환하지 않는다는 것을 알기 때문에 몇 가지 문제가 있습니다. 이PHP SQL Connect
if (!$db_connect)
{
die('Can\'t connect: ' . mysql_error());
}
웬일인지 내 SQL이 어떤 생각과도 연결되지 않습니까? 함수를 사용하여 SQl에 연결했지만 $ row_results가 데이터를 반환하지 않는다는 것을 알기 때문에 몇 가지 문제가 있습니다. 이PHP SQL Connect
if (!$db_connect)
{
die('Can\'t connect: ' . mysql_error());
}
변화 : 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의 라이브러리를 사용하는 것이 좋습니다.
나는 그것을 통해서만 문제가 아니 었음을 알고 있습니다. stackoverflow가 불가능합니다. –
쿼리를 인쇄하여 넣으십시오. 직접 SQL에서. 어떤 결과가 있습니까? –
이 시도
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();
이 줄에서는 테이블 이름 주위에 따옴표가 있습니다.
$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);
}
당신은 그것에서 아무것도 반환되지 않습니다 내가 볼 수
하나의 문제는,이 기능입니다.
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의 바운드 변수로 준비된 명령문로 전환해야합니다
당신은 예를 들어 사용하여 시작할 수 있습니다.
아, 네, 변수 범위가. – Sammitch
변수에 문제가 있습니다. 함수 외부에 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'];
하시기 바랍니다가 새로운 코드를 작성하는'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). –
구문 강조 표시는 스크립트에 오류가 있음을 보여줍니다. –
mqsql_ * 기능을 사용하지 마십시오. mysqli 또는 PDO를 사용하십시오. 'can not connect :'. mysql_error());' "할 수 없다"에서 아포스트로피를 벗어나는 곳에 –