【问题标题】:Why can't I access mysql database with c# and php? [duplicate]为什么我不能用c#和php访问mysql数据库? [复制]
【发布时间】:2016-08-03 16:42:12
【问题描述】:

对于 c# 中的 android 应用程序,我无法远程访问 mysql 数据库。 这是我的 C# 脚本。

void mSignUpButton_Click(object sender, EventArgs e)
    {
        WebClient client = new WebClient();
        Uri uri = new Uri("http://hitachipickmeup.dx.am/SQLQuery.php");
        NameValueCollection parameters = new NameValueCollection();
        parameters.Add("Name", textName.Text);
        parameters.Add("Email", txtEmail.Text);
        parameters.Add("Password", txtPassword.Text);
        client.UploadValuesAsync(uri, parameters);

    }

还有我的 PHP 脚本:

 <?php
 $servername = "fdb13.awardspace.net";
 $username = "2100274_pickmeup";
 $password = "*************";
 try 
 {
     $conn = new PDO("mysql:host=$servername;dbname=2100274_pickmeup",      $username, $password);
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     echo "Connected successfully";
}
catch(PDOException $e)
{
   echo "Connection failed: " . $e->getMessage();
}


if (isset($_POST['Name']) && isset($_POST['Email']) &&  isset($_POST['Password']))
{
   //Get the POST variables
   $mName = $_POST['Name'];
   $mEmail = $_POST['Email'];
   $mPassword = $_POST['Password'];

   //Insert new contact into database
   $query = 'INSERT INTO Contact_info (Contact_Name, Contact_Email, Contact_Password) VALUES ("$mName", "$mEmail","$mPassword")';
   $result = mysqli_query($query);
}
 ?>

当我转到http://hitachipickmeup.dx.am/SQLQuery.php时,它说“连接成功”。

Phpmyadmin(数据库为空):http://i.stack.imgur.com/WOu6l.png

【问题讨论】:

标签: c# php mysql database phpmyadmin


【解决方案1】:

用这个替换最后一个 if 语句:

if (isset($_POST['Name']) && isset($_POST['Email']) &&  isset($_POST['Password'])){
    //Get the POST variables
    $mName = $_POST['Name'];
    $mEmail = $_POST['Email'];
    $mPassword = $_POST['Password'];

    //Insert new contact into database
    $query = $conn->query('INSERT INTO Contact_info (Contact_Name, Contact_Email, Contact_Password) VALUES (:name, :email, :password)');
    $query->execute([
        ':name' => $mName,
        ':email' => $mEmail,
        ':password' => $mPassword
    ]);
}

如您所见,我将其更改为 PDOprepared 声明。

正如我在评论中所说,您不能混合使用数据库 API,要么使用 PDOMySQLi

【讨论】:

  • 谢谢,但这仍然不能解决问题。当我执行我的应用程序时,在 textname、txtemail 和 txtpassword 字段中输入我的信息,单击注册并在 phpmyadmin 中刷新我的 mysql 数据库,它仍然说 Contact_info 为空。我看不出我的错误在哪里。希望你能帮忙。感谢您的帮助。
  • 您知道是否可以远程访问microsoft azure mysql 数据库?
  • 我不使用 Azure,所以无法为您提供帮助。
猜你喜欢
  • 2017-02-28
  • 2012-12-19
  • 2021-02-21
  • 2016-11-25
  • 2016-01-19
  • 2016-03-16
  • 2021-07-04
  • 2013-05-04
  • 1970-01-01
相关资源
最近更新 更多