为什么我的php连接到sql数据库代码不起作用?

时间:2015-09-26 21:14:45

标签: php mysql sql-server

/ *我在我的php管理员中设置了一个数据库并使用了Dreamweaver。不确定 为什么它不起作用。 $ vars取自我使用的ftp站点。这是 代码:* /

<?php
$db_host = "host";
$db_username = "user_name";
$db_pass = "password";
$db_name = "db_name";

@mysql_connect($db_host, $db_username $db_pass) or die ("Could not connect 
to MySQL");
@mysql_select_db($db_name) or die ("No database"); 

$sql = "INSERT INTO 'signups' (FirstName, LastName, email,CompanyName, 
JobTitle, ProductSector,ProductWebsite,ProductName,id)
VALUES ('$FirstName', '$LastName', '$email','$CompanyName', '$JobTitle', 
'$ProductSector','$ProductWebsite','$ProductName','$id')";
?>

2 个答案:

答案 0 :(得分:1)

我意识到这是一个快速而简单的方法。连接MySQL的方法 - 但它非常容易Sql injectionparameterized query是一种更安全的方法。另外,&#39; mysql&#39;驱动程序不应该使用驱动程序deprecated and will not exist in php7。相反,sql的MySQLiPDO driver(首选)将被使用。 PHP网站上不再记录MySQL_connect。

即使这是一个测试环境,我也强烈建议尽早切换到安全驱动程序。

正如Elias Nicolas所指出的那样......将@符号放在mysql_connect前面会导致您必须跳过任何错误&#39;跳过&#39;。该错误不会记录,并且当它存在时,它会使它看起来没有问题。

编辑:这将让你接近Mysqli - 应该已经存在于php的扩展中。您可能需要在php.ini中启用它。此外,您可能需要单个&#39;在?周围标记。即:(&#39;?&#39;)。

// don't forget to sub the vars!
$db_host = "host";
$db_username = "user_name";
$db_pass = "password";
$db_name = "db_name";

$link = new mysqli($db_host, $db_username, $db_pass, $db_name) or die ('Could not connect to the database server' . mysqli_connect_error());

$sql = <<<QUERY
INSERT INTO signups 
    (FirstName, LastName, email, CompanyName, JobTitle, ProductSector, ProductWebsite, ProductName, id)
VALUES
    (?,?,?,?,?,?,?,?,?);
QUERY;

if ($stmt = $mysqli->prepare($sql)) 
{
    $stmt->bind_param("sssssssss", $FirstName, $LastName, $email, $CompanyName, $JobTitle, $ProductSector, $ProductWebsite, $ProductName, $id);
    $stmt->execute();
}

$link->close();

答案 1 :(得分:0)

对于您的表名,列的名称而不是值,您使用`而不是&#39;。你的SQL应该是这样的。

INSERT INTO `signups` (`FirstName`, `LastName` `email`, `CompanyName`, 
`JobTitle`, `ProductSector'`,`ProductWebsite`,`ProductName`,`id`)
VALUES ('$FirstName', '$LastName', '$email','$CompanyName', '$JobTitle', 
'$ProductSector','$ProductWebsite','$ProductName','$id')

希望有所帮助。

相关问题