簡體   English   中英

插入表VALUES-mysql_query到PDO

[英]INSERT INTO table VALUES - mysql_query to PDO

試圖使用新的PDO從舊的mysql_query插入值,但似乎無法獲取它。 這是與舊方法兼容的舊代碼:

$query = mysql_query("INSERT INTO videos VALUES ('','$title',time(),'0','$length','','$name','$cat','$reciter','$genre')");

我已經嘗試了以下代碼的變體,這些代碼取自另一個堆棧上的問題,但對我沒有任何幫助。

$query = "UPDATE people 
         SET price=?, 
             contact=?, 
             fname=?, 
             lname=? 
          WHERE id=? AND 
                username=?";
$stmt = $dbh->prepare($query);
$stmt->bindParam(1, $price);
$stmt->bindParam(2, $contact);
$stmt->bindParam(3, $fname);
$stmt->bindParam(4, $lname);
$stmt->bindParam(5, $id);
$stmt->bindParam(6, $username);    
$stmt->execute();

要插入的第一個值是數據庫中的自動增量值。 我不知道如何用新的PDO編寫它。 然后,第三次嘗試進行時間戳記。 所有其他值都是腳本中已經存在的值。

因此,這更符合我的要求。.它現在擁有的東西,但是不起作用。

$sql = "INSERT INTO videos (id, title, timestamp, views, length, image, vid_url, cetegory, reciter, genre)
                    VALUES (:id, :title, :timestamp, :views, :length, :image, :vid_url, :category, :reciter, :genre)";

$query = $DBH->prepare($sql); 
$results = $query->execute(array(
    ":id" => '',
    ":title" => $title,
    ":timestamp" => time(),
    ":views" => '0',
    ":length" => $length,
    ":image" => '',
    ":vid_url" => $name,
    ":category" => $cat,
    ":reciter" => $reciter,
    ":genre" => $genre
));

如果id是自動遞增,請不要將其傳遞給查詢。 如果您指定要插入到自動增量表中的值,則sql將嘗試插入該值。 因此不要在查詢中包含它,而讓SQL做到這一點。

其次,如果第三個字段是時間戳記,則將默認值設置為

CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

SQL會在更新或插入時自動更新時間戳(如果只希望在插入時添加CURRENT_TIMESTAMP ,那么您也可以刪除該行。

如果您也未在其中插入任何內容,也可以刪除圖像行,如果不使用該行,則無需在查詢中放入任何內容!

此外,關鍵PDO查找沒有冒號( : ),所以如果您的項目:title ,數組鍵將只是'title' 因此,您的代碼應類似於:

$sql = "INSERT INTO videos ( title, views, length,, vid_url, cetegory, reciter, genre)
                    VALUES (:title, :views, :length, :vid_url, :category, :reciter, :genre)";

$query = $DBH->prepare($sql); 
$results = $query->execute(array(
    "title" => $title,
    "views" => '0',
    "length" => $length,
    "vid_url" => $name,
    "category" => $cat,
    "reciter" => $reciter,
    "genre" => $genre
));

暫無
暫無

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

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