我一直在解決這個問題好幾天了。我使用PHP腳本將數據輸入到MySQL數據庫,我得到一個空白頁面,或者說它做到了,但MySQL中沒有任何更改。我嘗試從較舊的程序進行更新,安裝所有32位,並安裝所有64位軟件。現在我已經更新了一次並重做了兩次,我確定我在Windows中遇到了問題,但我不知道要在哪裏搜索。我會告訴你一個我正在使用的腳本,但我知道這是一個正在運行的腳本,因爲我用它來測試其他服務器。但找到問題的解決方案的一個主要障礙是,每當我找到有人遇到我的問題時,主要認爲腳本是問題,我沒有錯誤代碼,這個腳本甚至說「成功!」。PHP不與MySQL溝通
系統: Windows 7家庭高級版SP1 64位 的Apache 2.4.7 VC11 64 PHP 5.5.7 VC11 64 MySQL服務器5.6.12
腳本:
<?php // mysql-pdo-test.php
try {
$user = "[censored]"; $pass = "[censored]";
echo "-->connect and select database\n";
$dbh = new PDO('mysql:host=projectedin.local;dbname=test', $user, $pass);
# activate exception generation
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "<br />-->create table:\n";
$dbh->exec("CREATE TABLE IF NOT EXISTS test_tab (thing VARCHAR(10))");
echo "<br />-->insert into table:\n";
$dbh->exec("INSERT INTO test_tab VALUES ('book'),('pencil')");
echo "<br />-->select from table:\n";
$res = $dbh->query("SELECT thing FROM test_tab");
foreach ($res as $row) {
echo $row['thing'], " ";
}
echo "<br />-->drop table:\n";
$dbh->exec("DROP TABLE test_tab");
echo "<br />SUCCESS!";
// disconnect
$dbh = null;
}
catch (PDOException $e) {
die("<h4>Error: " . $e->getMessage() . "</h4>");
}
?>
嘗試'127.0.0.1'作爲您的MySQL服務器的地址。 Windows有時候對本地尋址很有趣。 – Machavity
您正在連接到'projectedin.local',這意味着MySQL正在偵聽TCP套接字而不是命名管道(就像您連接到'localhost'時那樣)。你能從MySQL命令行連接到'mysql -h projectedin.local test'嗎? –
所以你從'foreach'循環中看到* SUCCESS!*但不是* book *和* pencil *?您是否啓用了完整的錯誤報告(例如'php.ini'中的'display_errors = On'和'error_reporting = E_ALL')? – Phil