2

そのため、データベースにデータを挿入するのに問題があります。現在発生しているエラーは「データベースが選択されていません」というエラーですが、どこに問題があるのか​​わかりません。私のコードは次のとおりです。

<?php

$con=mysqli_connect("localhost","root","","db_test");

// Check connection

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$firstname=$_POST['firstnameReg']; 
$surname=$_POST['surnameReg'];
$mypassword=$_POST['passwordReg']; 
$email=$_POST['emailReg'];


$result= mysql_query("INSERT INTO tbl_customers (firstname, lastname, email, password) VALUES ('$firstname', '$surname', '$email', '$mypassword'");

echo "$firstname", "$surname", "$mypassword", "$email";

if($result)
{
    echo "Success!";
}
else
{
    die(mysql_error());
}

mysqli_close($con);
?>

エラーが表示されますか? SQL インジェクションから保護されていないことはわかっています。これは単なるテスト プロジェクトです。ありがとうございました。

4

3 に答える 3

2

mysql_queryどちらが間違ったライブラリからのものではなく、使用する必要がありますmysqli_query

$result= mysql_query("INSERT INTO tbl_customers (firstname, lastname, email, password) VALUES ('$firstname', '$surname', '$email', '$mypassword'");

したがって、あなたの場合、次の閉じ括弧もありませんVALUES

$result = mysqli_query($con, "INSERT INTO tbl_customers (firstname, lastname, email, password) VALUES ('$firstname', '$surname', '$email', '$mypassword')");

この機会に、SQL インジェクションを回避するために準備済みステートメントも実装する必要があります。

$sql = "INSERT INTO tbl_customers (firstname, lastname, email, password) VALUES (?, ?, ?, ?)";
if (!$insert = $con->prepare($sql))
    die('Query failed: (' . $con->errno . ') ' . $con->error);

if (!$insert->bind_param('ssss', $firstname, $surname, $email, $mypassword))
    die('Binding parameters failed: (' . $insert->errno . ') ' . $insert->error);

if (!$insert->execute())
    die('Execute failed: (' . $insert->errno . ') ' . $insert->error);
else
    echo "Success!";

mysqli_close($con);
于 2013-08-12T00:45:02.477 に答える
2

コードで と の両方mysqliを使用mysqlしています。のみを使用することができ、使用する必要がありますmysqli

于 2013-08-12T00:38:21.263 に答える
0

php.net にアクセスしてmysql_、使用する各構文を見つけますmysqli_

構文が非推奨であるという警告が表示されるたびに、mysql_代わりに使用される関数が示されます。

例:と の両方をmysqli_connect()置き換えます (1 つの関数でサーバーとデータベースを要求します)。mysql_connect();mysql_select_db();

編集について心配する必要はありません。ほとんどすべての重要な機能は (ほぼ) 同じであるため、それほど編集する必要はありません。

于 2013-08-12T00:48:14.310 に答える