我想做一個簡單的函數插入數組與我的數據庫與PDO。我的PDO請求有什麼問題?
<?php
require_once($_SERVER["DOCUMENT_ROOT"] . '/include/config/database.php');
/**
* Database
*/
class Database {
function __construct()
{
}
function insertArray($array, $table)
{
global $bdd;
$i = 1;
foreach ($array as $key => $currVal)
{
if ($i == count($array))
$keyVal .= ':'.$key;
else
$keyVal .= ':'.$key.', ';
$i++;
}
$arrayKeyValue = implode(", ", array_keys($array));
$req = $bdd->prepare('INSERT INTO '.$table.'('.$arrayKeyValue.') VALUES('.$keyVal.')');
$req->execute($array);
die('DONE');
}
}
?>
但沒有數據被插入,我沒有任何錯誤的PHP或與PDO錯誤...
有人知道我作出錯誤的?
感謝
PS:對不起,我的英文不好
SQL設置&連接
<?php
error_reporting(E_ALL);
$bdd = new PDO('mysql:host=localhost;dbname=csgo', 'csgo', 'password removed', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING));
?>
變量的內容:
$array
array(5) {
["screen_name"]=>
string(4) "test"
["avatar_big"]=>
string(15) "test_avatar.png"
["avatar_small"]=>
string(16) "small_avatar.png"
["steam_id"]=>
int(991)
["last_connection"]=>
int(156121)
}
$keyVal
string(69) ":screen_name, :avatar_big, :avatar_small, :steam_id, :last_connection"
$arrayKeyValue
string(64) "screen_name, avatar_big, avatar_small, steam_id, last_connection"
SQL請求:
INSERT INTO user(screen_name, avatar_big, avatar_small, steam_id, last_connection) VALUES(:screen_name, :avatar_big, :avatar_small, :steam_id, :last_connection)
傳遞給'prepare'的實際SQL字符串是什麼? – 2014-09-20 21:01:34
默認情況下,PDO將默認爲錯誤。設置你的'$ bdd'對象在連接後在'database.php'中引發異常:'$ bdd-> setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION);' – 2014-09-20 21:02:48
'... VALUES(「'。$ '')');'你缺少''(引號)的值 – 2014-09-20 21:03:17