我知道这些值是正确的,因为我测试了它们,我知道查询在控制台中工作 - 但是我正在试着看看它是如何工作的.我没有得到任何错误,但var_dump($row)=== false.
你能看出我哪里错了吗?
<?php
include('config.php');
//include('classes/db.class.php');
session_start();
var_dump($_SESSION['cart_id']);
$db = new PDO('mysql:host=' . DB_HOST .';dbname=' . DB_NAME, DB_USER, DB_PASS);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(isset($_POST['add2cart']))
{
if(!isset($_SESSION['cart_id']))
$_SESSION['cart_id'] = md5(my stuff here);
try{
$stmt = $db->prepare("
SELECT *
FROM cart
WHERE cart_id = ':cartid'
AND sku = ':sku'
");
$stmt->bindParam(':cartid', $_SESSION['cart_id'], PDO::PARAM_STR);
$stmt->bindParam(':sku', $_POST['sku'], PDO::PARAM_STR);
$stmt->execute();
//print_r($stmt);
$row = $stmt->fetch();
var_dump($row);
} catch(PDOException $e)
{
die($e->getMessage());
}
}
?>
Run Code Online (Sandbox Code Playgroud) 我认为这是一个奇怪的要求,但我真的无法弄清楚如何做到这一点:((
我有这样一个数组:
$oldArray = array([0]=>'str1', [1]=>'str2', [2]=>'str3'...);
[edit:] $oldArray = explode(',',$_POST['something']); // a string from an ajax call
Run Code Online (Sandbox Code Playgroud)
但我想"重新调整它"(对不起,这里不是非常技术性的术语):
$newArray = array('str1' => array(), 'str2'=>array(), 'str3'=>array() ... );
[edit:] What I'm actually trying to do is
$_SESSION['bish']['bash'][$newArrayKEY]['bosh'] = somethingElse;
Run Code Online (Sandbox Code Playgroud)
我真的希望这是足够的信息,让你们帮助我
非常感谢宝石