ดูเหมือนจะไม่สามารถเชื่อมต่อกับ msql โลคัลโฮสต์ได้ใช่ไหม

ดูเหมือนว่าฉันไม่สามารถรันโค้ดนี้ภายใต้โลคัลโฮสต์ได้ เป้าหมายของฉันคือสร้างตารางที่ควรจะแสดงบนเว็บไซต์ แต่เมื่อฉันพยายามเชื่อมต่อ ฉันได้รับข้อผิดพลาด:

คำเตือน: mysql_connect(): ใน C:\xampp\htdocs\PhpProject2\hent.php ออนไลน์ 5 ไม่สามารถเชื่อมต่อได้

my site name: http://localhost/PhpProject2/hent.php

รหัส:

<html>
<body>
<?php 

mysql_connect('<server is here>','<my username here>','<password here>') 
or die('can not connect' );
mysql_select_db('<my username here>') or die ('can not connect to <username here>');  

$sql = "Select * from Customer";
$result = mysql_query($sql);
$number= mysql_num_rows($result);

for($i=0; $i < $number; $i++)
{
    $table = mysql_fetch_row($result);
    echo  $table[0], $table[1];
    echo '<br>';
}
?>
    </body>
</html> 

ฉันใช้ xampp และ MySQL ทำงานบนพอร์ต 3306:]

แทนที่จะเป็น ‹ ชื่อผู้ใช้ที่นี่ >, ‹ เซิร์ฟเวอร์อยู่ที่นี่ >, ‹ รหัสผ่านที่นี่ > มีรหัสจริง :]

ฉันขอขอบคุณคำตอบใด ๆ :]


person Madde    schedule 22.01.2013    source แหล่งที่มา
comment
หากเป็นรหัสใหม่ ให้เริ่มต้นด้วยการใช้ MYSQLI_ แทน MYSQL MYSQL จะถูกคิดค่าเสื่อมราคาตั้งแต่ PHP 5.5 เป็นต้นไป   -  person Mr. Radical    schedule 22.01.2013
comment
คุณใช้ localhost, ชื่อผู้ใช้ และรหัสผ่านที่ถูกต้องหรือไม่? ทุกอย่างควรอยู่ใน เช่น localhost, root และหากคุณใช้การตั้งค่าเริ่มต้น   -  person Mr. Radical    schedule 22.01.2013
comment
คุณหมายถึงใช้ og ' ' แทนเหรอ?   -  person Madde    schedule 22.01.2013
comment
คุณได้ลองใช้ commandline แล้วหรือยัง? ในแผงควบคุม XAMPP ให้เลือก SHELL ป้อนคำสั่ง mysql -h ชื่อโฮสต์ -u ชื่อผู้ใช้ -p ถัดไปให้รหัสผ่านแก่คุณ   -  person Mr. Radical    schedule 22.01.2013
comment
ในเครื่องหมายคำพูด คุณยังสามารถใช้เครื่องหมายคำพูดเดี่ยวได้   -  person Mr. Radical    schedule 22.01.2013
comment
ฉันเข้าสู่ระบบแล้ว มีอะไรพิเศษที่ฉันสามารถทำได้ที่นั่นไหม? :]   -  person Madde    schedule 22.01.2013
comment
เชื่อมต่อกับฐานข้อมูลด้วยการเชื่อมต่อชื่อฐานข้อมูล คุณสามารถทำทุกอย่างด้วยบรรทัดคำสั่งได้เหมือนกับ PHP ฉันขอให้คุณทำเช่นนี้เพราะฉันจำเป็นต้องตรวจสอบว่าคุณใช้โฮสต์ ชื่อผู้ใช้ รหัสผ่าน และฐานข้อมูลที่ไม่ถูกต้องหรือไม่   -  person Mr. Radical    schedule 22.01.2013
comment
ดูเหมือนว่าฉันไม่สามารถเชื่อมต่อได้ ไม่แน่ใจว่าฉันใช้ชื่อที่ถูกต้องจริง ๆ หรือไม่ ฉันค่อนข้างใหม่กับเรื่องนี้ :]   -  person Madde    schedule 22.01.2013
comment
คุณสามารถเข้าสู่ระบบด้วย mysql -h ชื่อโฮสต์ -u ชื่อผู้ใช้ -p ได้หรือไม่? และไม่สามารถเชื่อมต่อกับฐานข้อมูลของคุณได้?   -  person Mr. Radical    schedule 22.01.2013
comment
ฉันสามารถเข้าสู่ระบบด้วย msql -h ชื่อโฮสต์ -u ชื่อผู้ใช้ -p :] ฉันลองอีกครั้งตอนนี้ซึ่งดูเหมือนจะไม่ทำงานอีกต่อไป   -  person Madde    schedule 22.01.2013
comment
คุณลองสิ่งนี้ได้ไหม: ในแผงควบคุมเลือกปุ่มผู้ดูแลระบบหลังจาก mysql นี่คือปุ่มผู้ดูแลระบบที่สองจากด้านบน ต่อไปจะเข้าสู่หน้าจอเข้าสู่ระบบ phpmyadmin พิมพ์ชื่อผู้ใช้และรหัสผ่านของคุณ จากนั้นจะพบรายการฐานข้อมูลทางด้านซ้าย บี.ที.ดับบลิว. คุณได้แทรกข้อมูลลงในฐานข้อมูลผ่านโปรแกรมนี้แล้วหรือยัง?   -  person Mr. Radical    schedule 22.01.2013
comment
ก่อนอื่นให้ลอง phpmyadmin ดูความคิดเห็นของฉันด้านบน หากไม่ได้ผล ให้ดำเนินการตามคำแนะนำต่อไปนี้ คุณได้ปิดหน้าต่างบรรทัดคำสั่งก่อนเข้าสู่ระบบหรือไม่ ฉันเดาว่าไม่ดังนั้นคุณอาจจะยังเข้าสู่ระบบอยู่ ในกรณีนี้การเข้าสู่ระบบอีกครั้งจะไม่ทำงาน เพื่อให้แน่ใจว่า ให้ปิดหน้าต่างบรรทัดคำสั่งและเปิดอินสแตนซ์ใหม่ผ่านแผงควบคุม หากคุณสามารถเข้าสู่ระบบได้ครั้งหนึ่ง คุณจะสามารถเข้าสู่ระบบอีกครั้งได้   -  person Mr. Radical    schedule 22.01.2013
comment
โอ้ ฉันเห็นพวกเขาแล้ว :] ปกติฉันใช้ msyql workbench และ putty :] ฉันได้เปลี่ยนชื่อฐานข้อมูลแล้วและพยายามเรียกใช้สิ่งที่คุณพูดไว้ แต่ดูเหมือนว่าจะยังคงเป็นปัญหาเดิม :/   -  person Madde    schedule 22.01.2013
comment
ฉันยังใช้ MySQL workbench และ putty ดังนั้นคุณก็สบายดี ใน workbench ให้ค้นหาชื่อของฐานข้อมูลที่คุณใช้   -  person Mr. Radical    schedule 22.01.2013
comment
เรียกว่าทดสอบ 555 :D   -  person Madde    schedule 22.01.2013
comment
มันไม่ได้ผล แต่ปัญหาอยู่ที่โฮสต์ไม่เสถียร ฉันคิดว่าเพราะมันทำงานที่โรงเรียนได้สักพัก :] ฉันยอมรับคำตอบของคุณแล้ว :D   -  person Madde    schedule 22.01.2013
comment
ฉันไม่เข้าใจว่าทำไมโฮสต์ถึงไม่เสถียร ฉันควรจะทำงานหรือไม่ทำงานเลย คุณใช้แล็ปท็อปเครื่องเดียวกันกับที่ติดตั้ง xampp ขณะที่คุณอยู่ที่โรงเรียนหรือไม่ หากคุณแน่ใจว่าคุณเริ่มเซิร์ฟเวอร์ Apache และ MySQL ผ่านแผงควบคุม หรือหากคุณได้ติดตั้งเซิร์ฟเวอร์ ให้ตรวจสอบผ่านแผงควบคุมว่าเซิร์ฟเวอร์ทำงานอยู่หรือไม่ หากต้องการตรวจสอบว่าทุกอย่างใช้งานได้หรือไม่ คุณสามารถเรียกใช้ขั้นตอนเดียวกับในโพสต์ก่อนหน้าเกี่ยวกับ netstat stackoverflow.com/questions/14245474/apache-wont-run -ใน-xampp   -  person Mr. Radical    schedule 22.01.2013


คำตอบ (4)


ลองสิ่งนี้:

<?php
  $host = "hostname";
  $user = "username";
  $password = "password";
  $database = "database";

  $link = mysqli_connect($host, $user, $password, $database);
  If (!$link){
      echo ("Unable to connect to database!");
  }
  else {
  $query = "SELECT * FROM Customer";    
  $result = mysqli_query($link,$query);

  while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)){
   echo  $row['<insert column name>']. "<br>";
  }
}
mysqli_close($link);
?>

ฉันใช้ไลบรารี MYSQL ในโค้ดนี้ คุณควรตรวจสอบว่าคอลัมน์ของคุณใน mysql เรียกว่า 0 และ 1 หรือไม่ B.T.W. ฉันใช้ WHILE แทน FOR loop ซึ่งเป็นเพียงความชอบส่วนตัว

person Mr. Radical    schedule 22.01.2013
comment
เป็นไปได้ไหมที่จะทราบว่าฉันใช้ฐานข้อมูลใด? :] - person Madde; 22.01.2013
comment
ในประเภทบรรทัดคำสั่ง SHOW DATABASES; ฐานข้อมูลเริ่มต้นคือ: information_schema, cdcol, mysql, performance_schema, phpmyadmin และ webauth ฐานข้อมูลอื่นทั้งหมดอาจเป็นของคุณ - person Mr. Radical; 22.01.2013
comment
@Madde เพียงเพื่อให้แน่ใจว่าคุณสร้างหรือเพิ่มสิ่งใดลงในฐานข้อมูลโดยใช้ phpmyadmin / command line /etc เพราะคุณต้องใส่ข้อมูลลงในฐานข้อมูลเพื่อเอามันออกมา ;-) - person Mr. Radical; 22.01.2013
comment
ฉันไม่ได้ใส่อะไรลงไปกับ phpadmin แต่ฉันได้ใส่ข้อมูลลงในตารางแล้วถ้านั่นคือสิ่งที่คุณหมายถึง? :] แทรกเข้าไปในค่านิยมของลูกค้า (null, 'Hilda', 'Olsen', 'Hakedalsveien 1', '1482'); :) - person Madde; 22.01.2013
comment
@Madde phpMyAdmin เป็นโปรแกรมที่รู้จักกันดีซึ่งเทียบได้กับ MySQL Workbench อย่างไรก็ตาม MySQL Workbench มีอินเทอร์เฟซผู้ใช้ (GUI) ที่มีประสิทธิภาพมากกว่ามาก phpMyAdmin อยู่ระหว่างบรรทัดคำสั่งแท้จาก MySQL และ MySQL Workbench ที่มองเห็นได้ชัดเจนยิ่งขึ้น ทั้งสามอนุญาตให้คุณแทรก / เลือก / ลบ / อัปเดต / ฯลฯ ข้อมูลลงในฐานข้อมูล - person Mr. Radical; 22.01.2013

ต่อไปนี้คือสิ่งที่คุณสามารถทำได้เพื่อดูข้อผิดพลาด:

mysql_connect('<server is here>','<my username here>','<password here>') 
or die('Error: '.mysql_error() );

และพยายามงดใช้ฟังก์ชันทั้งหมดที่ขึ้นต้นด้วย mysql_* ขณะนี้พวกเขากำลังถูกหักค่า

ใช้ mysqli หรือ pdo

person Ibu    schedule 22.01.2013
comment
โอ้ ขอบคุณ :] ข้อผิดพลาดแจ้งว่าเกิดข้อผิดพลาด: ความพยายามในการเชื่อมต่อล้มเหลวเนื่องจากบุคคลที่เชื่อมต่อไม่ตอบสนองอย่างถูกต้องหลังจากช่วงระยะเวลาหนึ่ง หรือการเชื่อมต่อที่สร้างไว้ล้มเหลวเนื่องจากโฮสต์ที่เชื่อมต่อไม่ตอบสนอง - person Madde; 22.01.2013
comment
คุณสามารถเชื่อมต่อกับ mysql ได้เลยหรือไม่? ตรวจสอบโฮสต์ของคุณ - person Ibu; 22.01.2013
comment
ถ้าคุณหมายถึง xampp? :] มันบอกว่า MySQL ทำงานบนพอร์ต 3306 เมื่อฉันพยายามเรียกใช้เอกสารอื่นในเครื่องมันก็ทำงานได้ดี - person Madde; 22.01.2013

ฉันขอแนะนำให้คุณเริ่มใช้ PDO

index.php

<?php 
require "dbc.php";

$getList = $db->getAllData(25);

foreach ($getList as $key=> $row) {
         echo $row['columnName'] .' key: '. $key;
    }
?>

dbc.php

<?php
class dbc {
public $dbserver = 'server';
public $dbusername = 'user';
public $dbpassword = 'pass';
public $dbname = 'db';

function openDb() {    
    try {
        $db = new PDO('mysql:host=' . $this->dbserver . ';dbname=' . $this->dbname . ';charset=utf8', '' . $this->dbusername . '', '' . $this->dbpassword . '');
    } catch (PDOException $e) {
        die("error, please try again " . $e);
    }        
    return $db;
}

function getAllData($qty) {
    //prepared query to prevent SQL injections
    $query = "Select * from Customer where zip= ?";
    $stmt = $this->openDb()->prepare($query);
    $stmt->bindValue(1, $qty, PDO::PARAM_INT);
    $stmt->execute();
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
    return $rows;
}    
?>
person Andrew    schedule 22.01.2013

นี่คือวิธีที่ฉันมักจะเชื่อมต่อกับฐานข้อมูล MySQL ฉันมี config.php

<?php

function db_connect(){
   $conn = new mysqli('localhost', 'root', 'leave_black_if_no_password_set', 'database_name');
   if (!$conn) {
      return false;
   }
   $conn->autocommit(TRUE);  
    return $conn;

}

?>

//สิ้นสุดการกำหนดค่า

ตอนนี้ในไฟล์อื่นของคุณ เพียงเรียก config.php: `include 'config.php';

    <html>
    <body>
    <?php 
    include 'php/config.php';
    $dbCon = db_connect();


    $sql = "Select * from Customer";
    $result = mysqli_query($dbCon, $sql);
    $number= mysqli_num_rows($result);

   while($row=mysqli_fetch_array($result)){
    {
        echo  $row['column_name'];
        echo '<br>';
    }
//close conn
 mysqli_close($dbCon);
    ?>
        </body>
    </html> 
person user1965451    schedule 22.01.2013