PHP mysql_query()没有找到这样的文件或目录?

时间:2015-01-15 04:54:51

标签: php sql

我在Hostmysite.com上设置了MySQL数据库。它连接得很好,我的php文件的想法是获取表单值并将其输入到SQL数据库中。我正在尝试通过比较电子邮件来创建一个不允许重复条目的功能,以查看它是否存在于数据库...

我认为PHP代码是正确的,但在die()上它返回没有找到这样的文件或目录???这没有用。

 <?php
   //connection variables is excluded to get to the point of the problem
   $con = mysqli_connect($host, $user, $pass, $db);
   if (!$con){
    die("Connection failed: " .my_sqli_connect_err());
   }

   $email =  $_POST["email"];
   $email = mysqli_real_escape_string($con, $email);

   //see if email exists in database
   $findEmail = "SELECT * FROM rsvpWedding WHERE email='" . $email."';";
   $results = mysql_query($findEmail)or die(mysql_error()); 
?>

在:

$results

返回没有这样的文件或目录?我不明白SQL语句是否正确,我相信我的PHP代码也是正确的。

我不知道这是否与此问题有关,但这确实混合了:

mysqli_*();

mysql_*();

***** UPDATE ******

我相信我理解为什么我收到没有找到这样的文件或目录的错误。根据网页:http://php.net/manual/en/function.mysql-query.php当执行sql_query()时,它会尝试连接到在

上执行的链接
sql_connect() 

不是

sqli_connect()

如果找不到它会尝试尝试与没有参数的sql_connect()连接,如果失败则会产生错误。从在线研究我看到没有这样的文件或目录是正常的与sql_connect()错误相关联。

所以我想我对这篇文章的问题是如何使用sqli_ *语法创建资源的一些变化。我试过了

$results = mysqli_query($con, $findEmail) or die(mysql_error());

但仍然无法正常工作,它只是跳过整个代码块...甚至不会产生错误。

3 个答案:

答案 0 :(得分:3)

这可能是由于没有为php配置正确的mysql.sock文件路径引起的。

  1. 因此请确保安装了mysql数据库引擎,并找到mysql.sock文件所在的位置。

  2. 然后你需要在php.ini文件中配置:

  3. 找到这些行,配置如下:

    mysql.default_socket = /path/mysql.sock mysqli.default_socket = /path/mysql.sock pdo_mysql.default_socket = /path/mysql.sock

    1. 重启apache服务器和mysql服务

答案 1 :(得分:0)

您不能将mysqli_*mysql_*混在一起。无论如何,以mysqli的方式做到更安全:

//see if email exists in database
$stmt = $con->prepare('SELECT * FROM rsvpWedding WHERE email=?'); // question mark is a placeholder
$stmt->bind_param('s', $email); // 's' means it's a string
$stmt->execute();
$stmt->bind_result($result); // assign the result to your $result var
$stmt->fetch();

请参阅此处的文档: http://php.net/manual/en/mysqli.prepare.php

答案 2 :(得分:0)

你不打印任何东西,这就是为什么! 尝试使用mysqli_num_rows($ result)

回应那个

如果大于零则存在 如果没有那么你们都很好