你給的訊息有個關鍵點
Access denied for user '資料庫名子'@'IP' (using password: YES)


你輸入的 database 名稱和帳號密碼確認沒有輸入錯誤?

如果確認沒錯的話,變數的撰寫方式改為單引號試試看,可能你的名稱或是密碼有特殊符號,所以才會造成傳送錯誤。

$db_db_name = '資料庫名子';
$db_host = 'IP';
$db_id = '帳號';
$db_pw = '密碼';


alwayssmileruten wrote:
你給的訊息有個關鍵...(恕刪)


帳號密碼都確認過沒有打錯,
改成單引號後,變成下面這個錯誤訊息...

Fatal error: Uncaught PDOException: invalid data source name in D:\xampp\htdocs\mit\index.php:8 Stack trace: #0 D:\xampp\htdocs\mit\index.php(8): PDO->__construct('IP', '帳號', '密碼') #1 {main} thrown in D:\xampp\htdocs\mit\index.php on line 8


繼續修改中...
==

PHP code 最前面加上


//predifined fetch constants
define('MYSQL_BOTH',MYSQLI_BOTH);
define('MYSQL_NUM',MYSQLI_NUM);
define('MYSQL_ASSOC',MYSQLI_ASSOC);


不然會有 undefined constant MYSQL_ASSOC

或者 mysqli_fetch_array($result, MYSQL_ASSOC) 直接改成 mysqli_fetch_array($result, MYSQLI_ASSOC)

很顯然 5.5 裡的
MYSQL_BOTH, MYSQL_NUM, MYSQL_ASSOC

在 7.0 已改成

MYSQLI_BOTH, MYSQLI_NUM, MYSQLI_ASSOC

==

為何一直使用 "資料庫名子"?

沒有真正的資料庫名字嗎?

例如 "Sales" 嗎?

沒有一個真正的資料庫名字, 要如何連線?

你的資料庫所在 PC IP address 也是 'IP' 二個英文字母嗎?

"帳號","密碼" 也是照字面寫嗎? 這要如何 work?

==

請把 資料庫名字 , 帳號, 私人 IP address 確實寫出 (密碼當然不需), 沒人能從遠端抓的到你的資料庫.

==

當初資料庫用什麼名字 (例如 'root'), 和密碼 (例如: 'mypassword') 來建立

就用它們放進程式碼

==

SHOWORDER.PHP 也沒 PO

==

建議純用 PHP , 沒有錯誤後再加上 html tags

紫色雙魚 wrote:
帳號密碼都確認過沒...(恕刪)



執行 php 7.0 的電腦和 mysql 是同一台嗎? 如果不是的話,mysql 要另外設定才能正常連線喔。
發現 field name 的標點符號很重要

反引號

$sql_query = "SELECT `orderid`, `phone`, `name` FROM `orders` WHERE `finish`=0 ORDER BY `orderid` DESC";

或 無引號

$sql_query = "SELECT orderid, phone, name FROM orders WHERE finish=0 ORDER BY orderid DESC";


才抓的出資料,

=====================

單引號
$sql_query = "SELECT 'orderid', 'phone', 'name' FROM 'orders' WHERE 'finish'=0 ORDER BY 'orderid' DESC";

抓不出資料
樓上大大有點出了
單引號與雙引號
對電腦來說是不同意思
當然執行結果會有所不同
建議開始學的時候,養成好習慣
像是程式分段,跳行,編排,讓自己好閱讀也好Debug
不然自己找錯誤就找到天荒地老
以上小小建議供參考
原po一開始po的就是反引號,
如果有權限可以看apache的ErrorLog,
查看ErrorLog的訊息也是一種抓bug的方式.
EthanTs wrote:
==PHP code...(恕刪)



<?php
$db_db_name = "資料庫名子";
$db_host = "IP";
$db_id = "帳號";
$db_pw = "密碼";

$db_link = mysqli_connect($db_host,$db_id,$db_pw,$db_db_name);

mysqli_query($db_link,"SET NAMES 'UTF8'");
$sql_query = "SELECT orderid, phone, name FROM orders WHERE finish=0 ORDER BY orderid DESC";

$result = mysqli_query($db_link, $sql_query);
$numrow = mysqli_num_rows($result);

$i=0;
while($row_result[$i] = mysqli_fetch_array($result, MYSQLI_ASSOC)){
$i++;
}
mysqli_close($db_link);
?>

感謝EthanTs大指點,
我一直沒注意到MYSQL_ASSOC沒有改成MYSQLI_ASSOC

如果以純php,寫完的結果都是錯誤訊息,
試過反引號也試過無引號...
Warning: mysqli_connect(): (HY000/1045): Access denied for user 'mit'@'120.117.132.106' (using password: YES) in D:\xampp\htdocs\mit\index.php on line 7

Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in D:\xampp\htdocs\mit\index.php on line 9

Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in D:\xampp\htdocs\mit\index.php on line 12

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in D:\xampp\htdocs\mit\index.php on line 13

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in D:\xampp\htdocs\mit\index.php on line 17

Warning: mysqli_close() expects parameter 1 to be mysqli, boolean given in D:\xampp\htdocs\mit\index.php on line 20

謝謝你如此熱心幫忙,

alwayssmileruten wrote:
執行 php 7.0...(恕刪)


是不同電腦,
mysql另外設定是要到phpmyadmin裡設定嗎?

不好意思學程式沒有很久,
很多問題不懂,謝謝大家的幫忙.

阿德Sky wrote:
樓上大大有點出了單...(恕刪)


謝謝你的建議,
學程式沒有很久,
很多地方都沒有注意到...
關閉廣告
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!