MYSQLIを使用すると、実際にはあなたが叫ぶと仮定するのではなく、エラーを探す必要があります。
function setData(){
global $servername;
global $username;
global $password;
global $dbname;
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else{
echo "Connection Successful" . "<br>";
}
$stmt = $conn->prepare("INSERT INTO test(firstname, surname) VALUES (?,?)");
// add error check
if ($stmt === false) {
echo $conn->error;
exit;
}
// Its not necessary to load the variables before the `bind_param`
// but as you dont actually have these variables yet you do
$firstname = "James";
$lastname = "Williams";
$stmt->bind_param("ss", $firstname, $surname);
$status = $stmt->execute();
// add error check
if ($status === false) {
echo $conn->error;
exit;
}
echo "New Records Created";
$stmt->close();
$conn->close();
}
あなたは、メインライン・コード内のデータベースに接続し、機能への接続のparamだけでなく、データのパラメータを渡すことによって、同様ビットを、これをクリーンアップすることができ
function setData($conn, $firstname, $lastname){
$stmt = $conn->prepare("INSERT INTO test(firstname, surname) VALUES (?,?)");
// add error check
if ($stmt === false) {
echo $conn->error;
exit;
}
$stmt->bind_param("ss", $firstname, $surname);
$status = $stmt->execute();
// add error check
if ($status === false) {
echo $conn->error;
exit;
}
return "New Records Created";
$stmt->close();
$conn->close();
}
$servername = '127.0.0.1';
$username = 'root';
$password = 'veryStRongPassPhrASe';
$dbname = 'mydatabase';
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else{
echo "Connection Successful" . "<br>";
}
$msg = setData($conn, 'Fred', 'Bloggs');
echo $msg;
'$ firstname'と' $ surname'はどこに定義されていますか? – Script47
私は肯定的ではありませんが、バインディングする前に設定する必要があると確信しています。 '$ ** sur ** name'と' $ ** last ** name'の問題があります。 – Uueerdo
@Uueerdo私はそれを修正しました、それは最後の変更でした) – Nathan