php - paso - pagina web con base de datos mysql
Conexiones de bases de datos PHP simples (5)
var $hostname;
var $username;
var $password;
var $database;
public function dbconnect($hostname=DB_HOST, $username=DB_USER, $password=DB_PASS, $database=DB_NAME)
{
$this->hostname = $hostname;
$this->username = $username;
$this->password = $password;
$this->database = $database;
$this->connect();
$this->select_db();
}
public function connect()
{
$this->handler = mysql_pconnect($this->hostname, $this->username, $this->password) or $this->throw_error(mysql_error(), __LINE__);
}
public function select_db()
{
mysql_select_db($this->database, $this->handler) or $this->throw_error(mysql_error(), __LINE__);
}
public function DoSelect($query)
{
$result = mysql_query($query);
$grandvalue="";
$RecordCounter=0;
if(!mysql_error() && mysql_num_rows($result))
{
if(mysql_num_rows($result)>0)
{
// Make sure we get some rows back before we try to fetch them
while ($row = mysql_fetch_array($result,MYSQL_NUM))
{
$grandvalue[$RecordCounter]=$row;
$RecordCounter++;
}
return $grandvalue;
}
else
{
return null;
}
}
}
public function DoInsert($query)
{
//echo $query;
$this->dbconnect();
$val=mysql_query($query);
// echo $val;
}
public function DoUpdate($query)
{
$this->dbconnect();
$val=mysql_query($query);
return $val;
}
public function DoDelete($query)
{
$this->dbconnect();
mysql_query($query);
}
}
$connection = new mysql_db();
$connection->dbconnect();
?>`enter code here`
Estoy haciendo una página simple para probar una conexión de base de datos. Cuando intenté acceder desde mi navegador, dice:
Error del Servidor
El sitio web encontró un error al recuperar
http://localhost:8888/blah/blah/test.php
. Puede estar fuera de servicio por mantenimiento o configurado incorrectamente.Aquí hay algunas sugerencias:
Recargue esta página luego. HTTP Error 500 (Error interno del servidor): se encontró una condición inesperada mientras el servidor intentaba completar la solicitud.
Todo lo que hago es conectarme a una base de datos y mostrar las tablas. Esto es lo que tengo hasta ahora como el código PHP:
<?php
// Get Variables
$dbname = $_GET["dbname"];
$dbusername = $_GET["dbusername"];
$dbpass = $_GET["dbpass"];
$dbhost = $_GET["dbhost"];
$connection = mysql_connect("$dbhost","$dbusername","$dbpass");
if (!$connection)
{
die(''Could not connect: '' . mysql_error());
}
else
{
echo "Connected";
$dbcheck = mysql_select_db("$dbname");
if (!$dbcheck) {
echo mysql_error();
}else{
echo "<p>Successfully connected to the database ''" . $database . "''</p>/n";
// Check tables
$sql = "SHOW TABLES FROM `$database`";
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
echo "<p>Available tables:</p>/n";
echo "<pre>/n";
while ($row = mysql_fetch_row($result)) {
echo "{$row[0]}/n";
}
echo "</pre>/n";
} else {
echo "<p>The database ''" . $database . "'' contains no tables.</p>/n";
echo mysql_error();
}
}
// some code
mysql_close($con);
?>
Mi error en los registros de Apache de WAMP es:
[03-Feb-2013 22:47:37 UTC] PHP Parse error: syntax error, unexpected end of file in /Applications/MAMP/htdocs/coursemanager/default/verify1.php on line 52
¿Qué sería un final de archivo inesperado?
Es una conexión de base de datos PHP muy simple
<?php
$dbhost = "dbhostname";
$dbusername = "dbusername";
$dbpassword = "dbpassword";
$dbname = "dbname";
$connection = mysql_connect($dbhost, $dbusername, $dbpassword) or die(''Could not connect'');
$db = mysql_select_db($dbname);
?>
Olvidó a} al final para cerrar: else{ echo "Connected";
<?php
// Get Variables
$dbname = $_GET["dbname"];
$dbusername = $_GET["dbusername"];
$dbpass = $_GET["dbpass"];
$dbhost = $_GET["dbhost"];
$connection = mysql_connect("$dbhost", "$dbusername", "$dbpass");
if (!$connection) {
die(''Could not connect: '' . mysql_error());
} else {
echo "Connected";
$dbcheck = mysql_select_db("$dbname");
if (!$dbcheck) {
echo mysql_error();
} else {
echo "<p>Successfully connected to the database ''" . $database . "''</p>/n";
// Check tables
$sql = "SHOW TABLES FROM `$database`";
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
echo "<p>Available tables:</p>/n";
echo "<pre>/n";
while ($row = mysql_fetch_row($result)) {
echo "{$row[0]}/n";
}
echo "</pre>/n";
} else {
echo "<p>The database ''" . $database . "'' contains no tables.</p>/n";
echo mysql_error();
}
}
}
// some code. no need to close mysql and no need to close php
Además, $database
es una variable indefinida. Debe ser $dbname
en lugar de $database
de $database
en su contexto.
El uso de PDO (extensión PHP) es un método confiable y eficiente para conectarse a MySQL. PDO también brinda más configuración a los usuarios y también puede manejar excepciones.
El código de conexión PDO será así:
$hostname=''localhost'';$username=''root'';$password='''';
try {
$dbh = new PDO("mysql:host=$hostname;dbname=stickercollections",$username,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line echo ''Connected to Database<br/>'';
} catch(PDOException $e) {
echo $e->getMessage();
}
Al usar el método PDO, puede evitar estos 500 errores y otras excepciones. Puede configurar mensajes de error globales de forma profesional.
Referencia: conecta php a la base de datos