簡體   English   中英

PHP Mysqli沒有錯誤,沒有查詢

[英]PHP Mysqli no errors, no querys

我正在嘗試使用mysqli而不是mysql查詢,但是它不起作用。 Mysqli的:

$mysqli->connect($db1['host'], $db1['user'], $db1['password'], $db1['database']);
if ($mysqli->connect_errno) {
        printf("Connect failed: %s\n", $mysqli->connect_error);
        exit();
    }

沒有錯誤。 如果我嘗試以下查詢:

if(isset($_POST['username']))
{
    $password = $_POST['p']; 

    $random_salt = hash('sha512', uniqid(mt_rand(1, mt_getrandmax()), true));

    $password = hash('sha512', $password.$random_salt);

    if ($insert_stmt = $mysqli->prepare("INSERT INTO members (username, email, password, salt) VALUES (?, ?, ?, ?)")) {    
       $insert_stmt->bind_param('ssss', $username, $email, $password, $random_salt); 

       $insert_stmt->execute();
    }
    echo "Success";
}

什么都沒有插入,mysqli錯誤沒有錯誤。 表結構正確,說明成功。 我是mysqli的新手,我已經習慣了mysql。 錯誤報告有什么我想念的嗎?

最好嘗試一下,它來自php manual

<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) 
{
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli- >connect_error;
}

你必須這樣做

$password = hash('sha512', $password.$random_salt);

$insert_stmt = $mysqli->prepare("INSERT INTO members (username, email, password, salt) VALUES (?, ?, ?, ?)");     
$insert_stmt->bind_param('ssss', $username, $email, $password, $random_salt); 

if($insert_stmt->execute())
{
    echo "Success";
}

實際上,您首先要檢查查詢,然后綁定參數,因為它只是顯示Success

您可以執行$ stmt-> execute(); 在這樣的if循環中:

if ($stmt->execute()){

    $result = $stmt->affected_rows;

    if ($result) { echo "yay" } else { echo "boo"; }
}
else {
    printf("Execute error: %s", $stmt->error);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM