성능을 향상시키기 위해 이전 쿼리 중 일부를 Mysqli 프레임 워크로 변경했습니다. 모든 것이 로컬 호스트에서 잘 작동하지만, 웹 서버에 업로드하면 아무 것도 출력되지 않습니다. 연결 후 오류가 있는지 확인하고 오류가 없는지 확인합니다. 나는 또한 PHP 모듈이 설치되어 있고 mysqli가 활성화되어 있는지 확인했다.Mysqli 쿼리는 웹 서버가 아닌 localhost에서만 작동합니다.
나는 오류가 표시되지 않으므로 데이터베이스에 연결된다는 것을 확신합니다.
$mysqli = new mysqli("server", "user", "password");
if (mysqli_connect_errno()) {
printf("Can't connect Errorcode: %s\n", mysqli_connect_error());
exit;
}
// Query used
$query = "SELECT name FROM users WHERE id = ?";
if ($stmt = $mysqli->prepare("$query"))
{
// Specify parameters to replace '?'
$stmt->bind_param("d", $id);
$stmt->execute();
// bind variables to prepared statement
$stmt->bind_result($_userName);
while ($stmt->fetch())
{
echo $_userName;
}
$stmt->close();
}
}
//close connection
$mysqli->close();
이 코드 내 localserver에 완벽하게 작동 말했듯이 :
은 다음과 같습니다 웹 서버에 쿼리로부터 출력 없다 (내가 데이터베이스 이름 문자열을 변경할 때 오류를 준) 그냥 온라인이 아니야. 오류 로그를 확인 했으므로 모든 것이 좋은 연결을 가리키고 있습니다. 이 모든 사람이 나를 붙잡 았기 때문에 모든 테이블이 존재합니다. 또한, 내가이 작동되면, 내 모든 다른 쿼리가 여전히 작동합니까? 아니면 mysqli 프레임 워크를 사용해야 할 것인가? 미리 감사드립니다.
편집 :
확인 필자 무슨 일이 일어나고 있는지보고 몇 가지 '디버깅'다. 내가 쿼리와 일치하는 테이블에 데이터가 있습니다. 그래서 기본적으로는 한 Statment 전에 출력 '디버그 1'은 (는 않는)를 준비해야
echo "debug 1";
if ($stmt = $mysqli->prepare("$shiftQuery"))
{
echo "debug 2";
printf("Error: %s.\n", $stmt->error);
etc...
}
: 나는하여 준비 문을 확인하려면 다음을했다. 그런 다음 '디버그 2'및 발생한 모든 오류를 출력해야합니다.
IF 문에서 디버그 2 행에 도달하지 않아 문제가 발생합니다. 연결 세부 정보가 좋기 때문에 $ mysqli 객체가 생성되지 않는 이유는 실제로 알 수 없습니다. 그 누군가에게 더 이상의 아이디어를 줄까요 ???
감사
을하는 데 도움이
희망처럼 내 mysqli를 실행? 이것은 생성자의 네 번째 매개 변수이거나 mysqli :: select_db 호출이다. – VolkerK
글쎄, 당신은 VolkerK 머리에 못을 박았습니다. 이전 연결 방법에서 세 가지 연결 매개 변수를 사용했습니다.내가 업로드 한 것은 데이터베이스를 선택하지 않는 것이었지만 localserver에서는 다른 연결 스크립트를 호출 할 때 선택되었습니다. 의견을 보내 주셔서 감사합니다. 언제나 환영합니다. – whamo