2013-11-21 3 views
0

mysqli 연결을 사용하여 Google Cloud SQL을 사용하여 간단한 쿼리 결과를 출력하려고합니다. 클라우드 SQL 인스턴스를 올바르게 설정하고 SQL 데이터베이스를 가져 왔습니다. 오류가 트리거되지 않습니다 - - 내 응용 프로그램을 실행할 때, 데이터베이스에 연결 보이지만 로그는 다음을 보여mysqli 오류를 사용하는 Cloud SQL

여기
PHP Fatal error: Wrong SQL: SELECT * FROM students Error: No database selected in /base/data/home/apps/s~db-php-001/1.371796924944999585/main.php on line 18 

내 코드입니다 : 분명히

$conn = new mysqli(null,"root","",null,null,"/cloudsql/db-php-001:db-instance-001"); 

// check connection 
if($conn->connect_error) { 
    trigger_error('Database connection failed: ' . $conn->connect_error, E_USER_ERROR); 
} 

$sql='SELECT * FROM students'; 

$rs=$conn->query($sql); 
if($rs === false) { 
    trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->error, E_USER_ERROR); 
} else { 
    $rows_returned = $rs->num_rows; 
} 

, 내가 그 오류를 방아쇠를 당긴다. 그러나 나는 이유를 이해할 수 없다. 확실히 데이터베이스에있는 학생이라는 테이블이 있습니다.

누구든지 아이디어가 있습니까?

감사합니다. Joe

답변

2

데이터베이스 이름을 null로 설정했습니다. 연결은과 같이 구성되어 있습니다

$mysqli = new mysqli("localhost", "user", "password", "database"); 

mysqli 생성자 (이 순서대로) 다음과 같은 매개 변수에 걸릴 수 있습니다

귀하의 경우
$mysqli = mysqli($hostname, $username, $password, $database, $port, $socket); 

, 당신은 할 매개 변수를 설정했습니다

$hostname = null; //Defaults to mysqli.default_host 
$username = "root"; 
$password = ""; 
$database = null; //Defaults to "" 
$port = null; //Defaults to mysqli.default_port 
$socket = "/cloudsql/db-php-001:db-instance-001"; 
+0

와우, 맞아 - mysqli 연결을위한 Google 문서가 잘못되었습니다. (NULL, NULL,,, 널 (null) "/ cloudsql/안녕하세요 - PHP : 내-cloudsql 인스턴스", "" "") '$의 SQL = 새로운 mysqli :;' 여기가 문서에 말씀입니다 데이터베이스가 있어야하는 추가 "null"에 유의하십시오. 나는 데이터베이스 이름이 어디에서 지정되어야하는지 궁금해했으나 인스턴스의 유일한 데이터베이스 였으므로 충분했다. 고맙습니다 - 당신은 생명의 은인입니다! P. 대답을 약간 수정하여 다음과 같이 만들 수 있습니다. $ mysqli = new mysqli (...) –

0

명확하게하기 위해 데이터베이스 이름에 null을 전달할 수 있습니다. 쿼리에서 정규화 된 테이블 이름 (귀하의 경우 <database>.Students)을 사용해야합니다. 또는 () 함수를 사용하여 사용할 데이터베이스를 선택할 수 있습니다.