Soalan Asal:
Apabila membuat sambungan ke pangkalan data MySQL yang dihoskan oleh 00webhost, ralat berlaku pada sambungan.Open() baris, menyatakan bahawa tiada hos MySQL dengan parameter yang ditetapkan. Walaupun menyemak rentetan sambungan, ia nampaknya betul.
Penyelesaian Masalah dan Penyelesaian:
Rentetan sambungan yang disediakan:
string MyConString = "SERVER=mysql7.000webhost.com;" + "DATABASE=a455555_test;" + "UID=a455555_me;" + "PASSWORD=something;";
mengandungi salah harta benda. Untuk menyelesaikan isu ini, rentetan sambungan hendaklah dibina menggunakan kelas pembina rentetan sambungan khusus, seperti berikut:
MySqlConnectionStringBuilder conn_string = new MySqlConnectionStringBuilder(); conn_string.Server = "mysql7.000webhost.com"; conn_string.UserID = "a455555_test"; conn_string.Password = "a455555_me"; conn_string.Database = "xxxxxxxx"; using (MySqlConnection conn = new MySqlConnection(conn_string.ToString())) { using (MySqlCommand cmd = conn.CreateCommand()) { // Handle SQL injection here cmd.CommandText = string.Format("INSERT Test (lat, long) VALUES ({0},{1})", OSGconv.deciLat, OSGconv.deciLon); conn.Open(); cmd.ExecuteNonQuery(); } }
Rentetan sambungan yang diubah suai ini menggunakan sifat dinamakan untuk menentukan parameter sambungan, memastikan penjajaran yang betul. Selain itu, kaedah ExecuteScalar() digantikan dengan ExecuteNonQuery() untuk melaksanakan pernyataan INSERT dengan betul.
Atas ialah kandungan terperinci Mengapa Rentetan Sambungan MySQL Saya Gagal pada 00webhost, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!